@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,655 +1,655 @@
|
|
|
1
|
-
# Analyze Source Structure CLI Tool - User Guide
|
|
2
|
-
|
|
3
|
-
**Tool:** `fc-connect analyze-source-structure`
|
|
4
|
-
**Purpose:** Analyze data files (XML, JSON, CSV, Parquet) and generate mapping templates for Fluent Commerce integrations
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Table of Contents
|
|
9
|
-
|
|
10
|
-
1. [What Is This Tool?](#what-is-this-tool)
|
|
11
|
-
2. [Why Use It?](#why-use-it)
|
|
12
|
-
3. [Getting Started](#getting-started)
|
|
13
|
-
4. [Quick Start Examples](#quick-start-examples)
|
|
14
|
-
5. [Common Workflows](#common-workflows)
|
|
15
|
-
6. [Understanding the Output](#understanding-the-output)
|
|
16
|
-
7. [Best Practices](#best-practices)
|
|
17
|
-
8. [Advanced Usage](#advanced-usage)
|
|
18
|
-
9. [Troubleshooting](#troubleshooting)
|
|
19
|
-
10. [FAQ](#faq)
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## What Is This Tool?
|
|
24
|
-
|
|
25
|
-
The `analyze-source-structure` CLI tool helps you understand how data files are structured and automatically generates mapping configurations for the Fluent Connect SDK.
|
|
26
|
-
|
|
27
|
-
**What it does:**
|
|
28
|
-
- ✅ Parses your data files (XML, JSON, CSV, Parquet)
|
|
29
|
-
- ✅ Shows you exactly how the SDK sees your data
|
|
30
|
-
- ✅ Lists all available fields and paths for mapping
|
|
31
|
-
- ✅ Detects arrays, nested objects, and XML attributes
|
|
32
|
-
- ✅ Generates ready-to-use mapping templates
|
|
33
|
-
- ✅ Suggests appropriate data type resolvers (parseFloat, trim, etc.)
|
|
34
|
-
- ✅ Creates shareable documentation for your team
|
|
35
|
-
|
|
36
|
-
**What it doesn't do:**
|
|
37
|
-
- ❌ Doesn't modify your source files
|
|
38
|
-
- ❌ Doesn't connect to APIs
|
|
39
|
-
- ❌ Doesn't execute mappings (use the SDK for that)
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## Why Use It?
|
|
44
|
-
|
|
45
|
-
### Problem: Manual Mapping Discovery is Time-Consuming
|
|
46
|
-
|
|
47
|
-
Without this tool, you'd need to:
|
|
48
|
-
1. Manually inspect your XML/JSON files
|
|
49
|
-
2. Figure out how the SDK parsers interpret the data
|
|
50
|
-
3. Manually write field paths (prone to errors)
|
|
51
|
-
4. Guess which resolvers to use (sdk.parseFloat vs sdk.parseInt?)
|
|
52
|
-
5. Trial-and-error to find the correct array structures
|
|
53
|
-
|
|
54
|
-
### Solution: Automated Analysis
|
|
55
|
-
|
|
56
|
-
With this tool, you get:
|
|
57
|
-
- **Instant visibility** - See all available fields in seconds
|
|
58
|
-
- **Accurate paths** - No typos or wrong paths
|
|
59
|
-
- **Smart suggestions** - Automatic resolver detection based on field names and data
|
|
60
|
-
- **Team collaboration** - Generate markdown docs to share with colleagues
|
|
61
|
-
- **Faster onboarding** - New developers understand data structure immediately
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
## Getting Started
|
|
66
|
-
|
|
67
|
-
### Installation
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
# The tool is included with the SDK
|
|
71
|
-
npm install @fluentcommerce/fc-connect-sdk
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Basic Command
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
npx fc-connect analyze-source-structure --file <path-to-your-file>
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
That's it! The tool will:
|
|
81
|
-
1. Auto-detect the file format (XML, JSON, CSV, Parquet)
|
|
82
|
-
2. Parse the file using SDK parsers
|
|
83
|
-
3. Display all available mapping paths
|
|
84
|
-
4. Show structure insights (arrays, attributes)
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Quick Start Examples
|
|
89
|
-
|
|
90
|
-
### Example 1: Analyze an XML File
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
npx fc-connect analyze-source-structure --file ./vendor-products.xml
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
**Output:**
|
|
97
|
-
```
|
|
98
|
-
📂 Parsing XML file: vendor-products.xml
|
|
99
|
-
|
|
100
|
-
🔍 Available Mapping Paths:
|
|
101
|
-
|
|
102
|
-
🏷️ Product.@sku
|
|
103
|
-
📄 Product.Name
|
|
104
|
-
📄 Product.Price
|
|
105
|
-
📋 Product.Variants.Variant[] (array)
|
|
106
|
-
🏷️ Product.Variants.Variant.@id
|
|
107
|
-
📄 Product.Variants.Variant.Size
|
|
108
|
-
|
|
109
|
-
📋 Structure Insights:
|
|
110
|
-
Root Element(s): Product
|
|
111
|
-
Arrays Detected: 1
|
|
112
|
-
- Product.Variants.Variant[] (array)
|
|
113
|
-
Attributes Detected: 2 (XML only)
|
|
114
|
-
- Product.@sku
|
|
115
|
-
- Product.Variants.Variant.@id
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### Example 2: Generate Mapping Template
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
npx fc-connect analyze-source-structure \
|
|
122
|
-
--file ./vendor-products.xml \
|
|
123
|
-
--output ./product-mapping.json
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
**Creates:** `product-mapping.json`
|
|
127
|
-
```json
|
|
128
|
-
{
|
|
129
|
-
"version": "1.0.0",
|
|
130
|
-
"description": "Generated mapping template from XML analysis",
|
|
131
|
-
"fields": {
|
|
132
|
-
"sku": {
|
|
133
|
-
"source": "Product.@sku",
|
|
134
|
-
"resolver": "sdk.trim",
|
|
135
|
-
"comment": "SKU field detected - preserves format"
|
|
136
|
-
},
|
|
137
|
-
"name": {
|
|
138
|
-
"source": "Product.Name",
|
|
139
|
-
"resolver": "sdk.trim"
|
|
140
|
-
},
|
|
141
|
-
"price": {
|
|
142
|
-
"source": "Product.Price",
|
|
143
|
-
"resolver": "sdk.parseFloat",
|
|
144
|
-
"comment": "Price field detected - converts to number"
|
|
145
|
-
},
|
|
146
|
-
"Variant": {
|
|
147
|
-
"source": "Product.Variants.Variant[]",
|
|
148
|
-
"isArray": true,
|
|
149
|
-
"fields": {
|
|
150
|
-
"id": {
|
|
151
|
-
"source": "@id",
|
|
152
|
-
"comment": "Array item field - item is already context"
|
|
153
|
-
},
|
|
154
|
-
"size": {
|
|
155
|
-
"source": "Size"
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### Example 3: Generate Documentation
|
|
164
|
-
|
|
165
|
-
```bash
|
|
166
|
-
npx fc-connect analyze-source-structure \
|
|
167
|
-
--file ./vendor-products.xml \
|
|
168
|
-
--markdown ./docs/vendor-analysis.md
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
**Creates:** Complete documentation including:
|
|
172
|
-
- Input file sample (first 50 lines)
|
|
173
|
-
- CLI command used (reproducible)
|
|
174
|
-
- Parsed structure (JavaScript object)
|
|
175
|
-
- All mapping paths with visual indicators
|
|
176
|
-
- Complete mapping template
|
|
177
|
-
- Next steps guidance
|
|
178
|
-
|
|
179
|
-
---
|
|
180
|
-
|
|
181
|
-
## Common Workflows
|
|
182
|
-
|
|
183
|
-
### Workflow 1: New Integration - Understanding Source Data
|
|
184
|
-
|
|
185
|
-
**Scenario:** You've received XML files from a new vendor and need to understand their structure.
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
# Step 1: Analyze the structure
|
|
189
|
-
npx fc-connect analyze-source-structure \
|
|
190
|
-
--file ./vendor-order-sample.xml \
|
|
191
|
-
--markdown ./docs/vendor-order-analysis.md
|
|
192
|
-
|
|
193
|
-
# Step 2: Review the documentation
|
|
194
|
-
# Open ./docs/vendor-order-analysis.md and review:
|
|
195
|
-
# - What fields are available?
|
|
196
|
-
# - What are the array structures?
|
|
197
|
-
# - Are there XML attributes?
|
|
198
|
-
|
|
199
|
-
# Step 3: Generate starting template
|
|
200
|
-
npx fc-connect analyze-source-structure \
|
|
201
|
-
--file ./vendor-order-sample.xml \
|
|
202
|
-
--output ./config/vendor-order-mapping.json \
|
|
203
|
-
--direction ingest \
|
|
204
|
-
--mapper graphql
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
**What you get:**
|
|
208
|
-
- ✅ Complete understanding of vendor data structure
|
|
209
|
-
- ✅ Documentation you can share with your team
|
|
210
|
-
- ✅ Working mapping template ready to customize
|
|
211
|
-
|
|
212
|
-
### Workflow 2: CSV Data Migration
|
|
213
|
-
|
|
214
|
-
**Scenario:** Migrating inventory data from CSV to Fluent Commerce.
|
|
215
|
-
|
|
216
|
-
```bash
|
|
217
|
-
# Step 1: Analyze CSV structure
|
|
218
|
-
npx fc-connect analyze-source-structure \
|
|
219
|
-
--file ./inventory.csv \
|
|
220
|
-
--output ./migration-mapping.json \
|
|
221
|
-
--direction extract \
|
|
222
|
-
--mapper universal
|
|
223
|
-
|
|
224
|
-
# Step 2: Review the generated mapping
|
|
225
|
-
# The tool detected columns and suggested resolvers:
|
|
226
|
-
# - "sku" → sdk.trim (preserves SKU format)
|
|
227
|
-
# - "price" → sdk.parseFloat (converts to number)
|
|
228
|
-
# - "quantity" → sdk.parseInt (converts to integer)
|
|
229
|
-
|
|
230
|
-
# Step 3: Customize field names to match Fluent schema
|
|
231
|
-
# Edit migration-mapping.json:
|
|
232
|
-
# - Rename "sku" to "skuRef"
|
|
233
|
-
# - Add "required: true" where needed
|
|
234
|
-
# - Adjust resolvers if necessary
|
|
235
|
-
|
|
236
|
-
# Step 4: Use in your migration script
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
### Workflow 3: Debugging Mapping Issues
|
|
240
|
-
|
|
241
|
-
**Scenario:** Your mapping isn't working as expected. Fields aren't being extracted correctly.
|
|
242
|
-
|
|
243
|
-
```bash
|
|
244
|
-
# Problem: Field "Order.Items.Item.SKU" isn't mapping
|
|
245
|
-
# Solution: See how SDK actually parses your file
|
|
246
|
-
|
|
247
|
-
npx fc-connect analyze-source-structure \
|
|
248
|
-
--file ./problematic-order.xml \
|
|
249
|
-
--show-json
|
|
250
|
-
|
|
251
|
-
# Output shows the actual JavaScript object structure
|
|
252
|
-
# You discover: SDK stores it as "@sku" (XML attribute), not "SKU"
|
|
253
|
-
# Fix your mapping: "source": "@sku"
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
### Workflow 4: Team Collaboration
|
|
257
|
-
|
|
258
|
-
**Scenario:** Your team needs to understand a complex data source for a new integration.
|
|
259
|
-
|
|
260
|
-
```bash
|
|
261
|
-
# Generate comprehensive documentation
|
|
262
|
-
npx fc-connect analyze-source-structure \
|
|
263
|
-
--file ./sfcc-order-export.xml \
|
|
264
|
-
--output ./config/sfcc-order-mapping.json \
|
|
265
|
-
--markdown ./docs/sfcc-order-structure.md \
|
|
266
|
-
--direction ingest \
|
|
267
|
-
--mapper graphql
|
|
268
|
-
|
|
269
|
-
# Share ./docs/sfcc-order-structure.md with:
|
|
270
|
-
# - Developers (see the exact structure)
|
|
271
|
-
# - QA (understand test data requirements)
|
|
272
|
-
# - Product managers (review data fields)
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
---
|
|
276
|
-
|
|
277
|
-
## Understanding the Output
|
|
278
|
-
|
|
279
|
-
### Console Output Explained
|
|
280
|
-
|
|
281
|
-
```
|
|
282
|
-
📂 Parsing XML file: inventory.xml
|
|
283
|
-
```
|
|
284
|
-
Confirms the file and format detected.
|
|
285
|
-
|
|
286
|
-
```
|
|
287
|
-
🔍 Available Mapping Paths:
|
|
288
|
-
|
|
289
|
-
🏷️ InventoryFeed.Items.Item.@sku
|
|
290
|
-
📄 InventoryFeed.Items.Item.ProductName
|
|
291
|
-
📋 InventoryFeed.Items.Item[] (array)
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
**Icons:**
|
|
295
|
-
- 🏷️ = XML attribute (use @ prefix in mapping)
|
|
296
|
-
- 📄 = Regular scalar field
|
|
297
|
-
- 📋 = Array field (needs `isArray: true`)
|
|
298
|
-
|
|
299
|
-
### Mapping Template Structure
|
|
300
|
-
|
|
301
|
-
```json
|
|
302
|
-
{
|
|
303
|
-
"version": "1.0.0",
|
|
304
|
-
"fields": {
|
|
305
|
-
"fieldName": {
|
|
306
|
-
"source": "path.to.field", // ← Where to get data from
|
|
307
|
-
"resolver": "sdk.trim", // ← How to transform it
|
|
308
|
-
"required": true, // ← Validation (optional)
|
|
309
|
-
"comment": "Description" // ← For documentation
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
### Smart Resolver Detection
|
|
316
|
-
|
|
317
|
-
The tool analyzes field names and values to suggest appropriate resolvers:
|
|
318
|
-
|
|
319
|
-
| Field Name Contains | Sample Value | Suggested Resolver | Why? |
|
|
320
|
-
|-------------------|--------------|-------------------|------|
|
|
321
|
-
| `sku`, `code`, `barcode` | `"SKU-001"` | `sdk.trim` | Preserves format (leading zeros, hyphens) |
|
|
322
|
-
| `price`, `amount`, `cost` | `"19.99"` | `sdk.parseFloat` | Converts to decimal number |
|
|
323
|
-
| `quantity`, `count`, `id` | `"100"` | `sdk.parseInt` | Converts to integer |
|
|
324
|
-
| `email`, `mail` | `"USER@EXAMPLE.COM"` | `sdk.lowercase` | Normalizes email addresses |
|
|
325
|
-
| `date`, `timestamp` | `"2024-01-15"` | `sdk.parseDate` | Converts to date object |
|
|
326
|
-
| `version`, `build`, `tag` | `"2024-01-15"` | `sdk.trim` | Preserves version strings |
|
|
327
|
-
|
|
328
|
-
**Important:** These are suggestions! Always review and adjust based on your specific requirements.
|
|
329
|
-
|
|
330
|
-
---
|
|
331
|
-
|
|
332
|
-
## Best Practices
|
|
333
|
-
|
|
334
|
-
### 1. Always Use Markdown for Complex Files
|
|
335
|
-
|
|
336
|
-
```bash
|
|
337
|
-
# ✅ GOOD - Creates shareable documentation
|
|
338
|
-
npx fc-connect analyze-source-structure \
|
|
339
|
-
--file ./complex-order.xml \
|
|
340
|
-
--markdown ./docs/order-analysis.md
|
|
341
|
-
|
|
342
|
-
# ❌ LESS IDEAL - Console output only (hard to review later)
|
|
343
|
-
npx fc-connect analyze-source-structure \
|
|
344
|
-
--file ./complex-order.xml
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
### 2. Specify Mapper Type for Better Templates
|
|
348
|
-
|
|
349
|
-
```bash
|
|
350
|
-
# For XML/JSON → GraphQL ingestion
|
|
351
|
-
npx fc-connect analyze-source-structure \
|
|
352
|
-
--file ./order.xml \
|
|
353
|
-
--mapper graphql \
|
|
354
|
-
--direction ingest
|
|
355
|
-
|
|
356
|
-
# For CSV → Batch API
|
|
357
|
-
npx fc-connect analyze-source-structure \
|
|
358
|
-
--file ./inventory.csv \
|
|
359
|
-
--mapper universal \
|
|
360
|
-
--direction extract
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
### 3. Review and Customize Generated Templates
|
|
364
|
-
|
|
365
|
-
Generated templates are a **starting point**, not the final solution:
|
|
366
|
-
|
|
367
|
-
```json
|
|
368
|
-
// Generated template
|
|
369
|
-
{
|
|
370
|
-
"sku": {
|
|
371
|
-
"source": "@sku",
|
|
372
|
-
"resolver": "sdk.trim"
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
// Customize for your needs
|
|
377
|
-
{
|
|
378
|
-
"skuRef": { // ← Rename to match Fluent schema
|
|
379
|
-
"source": "@sku",
|
|
380
|
-
"resolver": "sdk.trim",
|
|
381
|
-
"required": true, // ← Add validation
|
|
382
|
-
"comment": "Product SKU" // ← Update comment
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
```
|
|
386
|
-
|
|
387
|
-
### 4. Use Sample Files for Analysis
|
|
388
|
-
|
|
389
|
-
```bash
|
|
390
|
-
# ✅ GOOD - Small representative sample
|
|
391
|
-
npx fc-connect analyze-source-structure --file ./order-sample.xml
|
|
392
|
-
|
|
393
|
-
# ❌ AVOID - Huge production file (slower, same results)
|
|
394
|
-
npx fc-connect analyze-source-structure --file ./orders-full-10gb.xml
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
The tool samples data intelligently:
|
|
398
|
-
- CSV/Parquet: First 100 rows
|
|
399
|
-
- XML/JSON: Full file (but docs show first 50 lines)
|
|
400
|
-
|
|
401
|
-
### 5. Version Control Your Mappings
|
|
402
|
-
|
|
403
|
-
```bash
|
|
404
|
-
# Generate mapping template
|
|
405
|
-
npx fc-connect analyze-source-structure \
|
|
406
|
-
--file ./vendor-products.xml \
|
|
407
|
-
--output ./config/vendor-mapping.json
|
|
408
|
-
|
|
409
|
-
# Commit to version control
|
|
410
|
-
git add ./config/vendor-mapping.json
|
|
411
|
-
git commit -m "feat: add vendor product mapping template"
|
|
412
|
-
```
|
|
413
|
-
|
|
414
|
-
---
|
|
415
|
-
|
|
416
|
-
## Advanced Usage
|
|
417
|
-
|
|
418
|
-
### Option 1: Show Parsed Structure
|
|
419
|
-
|
|
420
|
-
```bash
|
|
421
|
-
# See exactly how SDK parsers interpret your file
|
|
422
|
-
npx fc-connect analyze-source-structure \
|
|
423
|
-
--file ./order.xml \
|
|
424
|
-
--show-json
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
**Use when:**
|
|
428
|
-
- Debugging why a field isn't mapping
|
|
429
|
-
- Understanding nested object structures
|
|
430
|
-
- Verifying array structures
|
|
431
|
-
|
|
432
|
-
### Option 2: Multiple Output Formats
|
|
433
|
-
|
|
434
|
-
```bash
|
|
435
|
-
# Generate both mapping template AND documentation
|
|
436
|
-
npx fc-connect analyze-source-structure \
|
|
437
|
-
--file ./products.xml \
|
|
438
|
-
--output ./config/product-mapping.json \
|
|
439
|
-
--markdown ./docs/product-analysis.md \
|
|
440
|
-
--direction ingest \
|
|
441
|
-
--mapper graphql
|
|
442
|
-
```
|
|
443
|
-
|
|
444
|
-
### Option 3: Parquet Analysis
|
|
445
|
-
|
|
446
|
-
```bash
|
|
447
|
-
# Analyze Parquet files (first 100 records)
|
|
448
|
-
npx fc-connect analyze-source-structure \
|
|
449
|
-
--file ./events.parquet \
|
|
450
|
-
--format parquet \
|
|
451
|
-
--output ./event-mapping.json
|
|
452
|
-
```
|
|
453
|
-
|
|
454
|
-
### Option 4: Custom Markdown Path
|
|
455
|
-
|
|
456
|
-
```bash
|
|
457
|
-
# Specify custom documentation path
|
|
458
|
-
npx fc-connect analyze-source-structure \
|
|
459
|
-
--file ./inventory.csv \
|
|
460
|
-
--markdown ./team-docs/inventory-structure.md
|
|
461
|
-
```
|
|
462
|
-
|
|
463
|
-
---
|
|
464
|
-
|
|
465
|
-
## Troubleshooting
|
|
466
|
-
|
|
467
|
-
### Problem: "Cannot find module"
|
|
468
|
-
|
|
469
|
-
```bash
|
|
470
|
-
# Error: Cannot find module '@fluentcommerce/fc-connect-sdk'
|
|
471
|
-
|
|
472
|
-
# Solution: Install the SDK
|
|
473
|
-
npm install @fluentcommerce/fc-connect-sdk
|
|
474
|
-
```
|
|
475
|
-
|
|
476
|
-
### Problem: "File not found"
|
|
477
|
-
|
|
478
|
-
```bash
|
|
479
|
-
# Error: ENOENT: no such file or directory
|
|
480
|
-
|
|
481
|
-
# Solution: Use absolute or correct relative path
|
|
482
|
-
npx fc-connect analyze-source-structure --file ./correct-path/file.xml
|
|
483
|
-
|
|
484
|
-
# Or use absolute path
|
|
485
|
-
npx fc-connect analyze-source-structure --file /full/path/to/file.xml
|
|
486
|
-
```
|
|
487
|
-
|
|
488
|
-
### Problem: "Format not detected"
|
|
489
|
-
|
|
490
|
-
```bash
|
|
491
|
-
# Error: Could not detect format
|
|
492
|
-
|
|
493
|
-
# Solution: Specify format explicitly
|
|
494
|
-
npx fc-connect analyze-source-structure \
|
|
495
|
-
--file ./myfile.dat \
|
|
496
|
-
--format xml
|
|
497
|
-
```
|
|
498
|
-
|
|
499
|
-
### Problem: XML Attributes Not Showing
|
|
500
|
-
|
|
501
|
-
```bash
|
|
502
|
-
# Issue: XML attributes like 'id="123"' not in output
|
|
503
|
-
|
|
504
|
-
# Check: Make sure your XML has attributes
|
|
505
|
-
# The tool automatically includes attributes with @ prefix
|
|
506
|
-
# If you don't see attributes, they might not exist in your XML
|
|
507
|
-
```
|
|
508
|
-
|
|
509
|
-
### Problem: Array Fields Not Detected
|
|
510
|
-
|
|
511
|
-
```bash
|
|
512
|
-
# Issue: Tool shows field but not as array
|
|
513
|
-
|
|
514
|
-
# Cause: Your sample file might have only one item
|
|
515
|
-
# Solution: Provide a sample with multiple items in the array
|
|
516
|
-
|
|
517
|
-
# Example:
|
|
518
|
-
# ❌ Single item (tool can't detect it's an array)
|
|
519
|
-
<Items>
|
|
520
|
-
<Item>Product 1</Item>
|
|
521
|
-
</Items>
|
|
522
|
-
|
|
523
|
-
# ✅ Multiple items (tool detects array)
|
|
524
|
-
<Items>
|
|
525
|
-
<Item>Product 1</Item>
|
|
526
|
-
<Item>Product 2</Item>
|
|
527
|
-
</Items>
|
|
528
|
-
```
|
|
529
|
-
|
|
530
|
-
### Problem: Resolver Suggestions Incorrect
|
|
531
|
-
|
|
532
|
-
```bash
|
|
533
|
-
# Issue: Field "productCode" suggested as parseInt, should be trim
|
|
534
|
-
|
|
535
|
-
# Cause: Value "12345" looks numeric
|
|
536
|
-
# Solution: This is now FIXED in latest SDK version
|
|
537
|
-
# Code/SKU fields are detected BEFORE numeric detection
|
|
538
|
-
|
|
539
|
-
# If you still see issues, customize the generated template:
|
|
540
|
-
{
|
|
541
|
-
"productCode": {
|
|
542
|
-
"source": "code",
|
|
543
|
-
"resolver": "sdk.trim" // ← Override suggestion
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
```
|
|
547
|
-
|
|
548
|
-
---
|
|
549
|
-
|
|
550
|
-
## FAQ
|
|
551
|
-
|
|
552
|
-
### Q: What file formats are supported?
|
|
553
|
-
|
|
554
|
-
**A:** XML, JSON, CSV, and Parquet files.
|
|
555
|
-
|
|
556
|
-
### Q: Does this tool connect to the Fluent API?
|
|
557
|
-
|
|
558
|
-
**A:** No, it only analyzes local files. It uses the same parsers as the SDK, so the output matches runtime behavior.
|
|
559
|
-
|
|
560
|
-
### Q: Can I use this on production data?
|
|
561
|
-
|
|
562
|
-
**A:** Yes! The tool only reads files, never modifies them. However, use sample files when possible (faster analysis, same results).
|
|
563
|
-
|
|
564
|
-
### Q: How do I use the generated mapping template?
|
|
565
|
-
|
|
566
|
-
**A:** Import it in your connector code:
|
|
567
|
-
|
|
568
|
-
```typescript
|
|
569
|
-
import mappingConfig from './product-mapping.json' with { type: 'json' };
|
|
570
|
-
import { UniversalMapper } from '@fluentcommerce/fc-connect-sdk';
|
|
571
|
-
|
|
572
|
-
const mapper = new UniversalMapper(mappingConfig);
|
|
573
|
-
const result = await mapper.map(sourceData);
|
|
574
|
-
```
|
|
575
|
-
|
|
576
|
-
### Q: Can I customize the resolver suggestions?
|
|
577
|
-
|
|
578
|
-
**A:** Yes! The suggestions are just a starting point. Edit the generated JSON file to match your needs.
|
|
579
|
-
|
|
580
|
-
### Q: What's the difference between `--mapper universal` and `--mapper graphql`?
|
|
581
|
-
|
|
582
|
-
**A:**
|
|
583
|
-
- `universal`: For CSV/Parquet → Batch API (uses item-relative paths like `"source": "sku"`)
|
|
584
|
-
- `graphql`: For XML/JSON → GraphQL mutations (uses `$.` prefix like `"source": "$.sku"`)
|
|
585
|
-
|
|
586
|
-
Choose based on your integration pattern.
|
|
587
|
-
|
|
588
|
-
### Q: How do I handle huge files?
|
|
589
|
-
|
|
590
|
-
**A:** The tool samples data intelligently:
|
|
591
|
-
- CSV/Parquet: First 100 rows
|
|
592
|
-
- XML/JSON: Full file (but analysis is fast)
|
|
593
|
-
|
|
594
|
-
You don't need to provide the entire dataset—a representative sample is enough.
|
|
595
|
-
|
|
596
|
-
### Q: Can I use this for Versori connectors?
|
|
597
|
-
|
|
598
|
-
**A:** Yes! The tool works for both standalone Node.js apps and Versori connectors. The mapping format is the same.
|
|
599
|
-
|
|
600
|
-
### Q: What if my field paths are incorrect?
|
|
601
|
-
|
|
602
|
-
**A:** Use `--show-json` to see exactly how the SDK parses your file:
|
|
603
|
-
|
|
604
|
-
```bash
|
|
605
|
-
npx fc-connect analyze-source-structure \
|
|
606
|
-
--file ./your-file.xml \
|
|
607
|
-
--show-json
|
|
608
|
-
```
|
|
609
|
-
|
|
610
|
-
This shows the actual JavaScript object structure, making it easy to identify correct paths.
|
|
611
|
-
|
|
612
|
-
### Q: How do I share analysis with my team?
|
|
613
|
-
|
|
614
|
-
**A:** Generate markdown documentation:
|
|
615
|
-
|
|
616
|
-
```bash
|
|
617
|
-
npx fc-connect analyze-source-structure \
|
|
618
|
-
--file ./data.xml \
|
|
619
|
-
--markdown ./docs/analysis.md
|
|
620
|
-
```
|
|
621
|
-
|
|
622
|
-
Share the markdown file—it's self-contained and includes everything your team needs.
|
|
623
|
-
|
|
624
|
-
---
|
|
625
|
-
|
|
626
|
-
## Next Steps
|
|
627
|
-
|
|
628
|
-
1. **Try it yourself**: Run the tool on one of your data files
|
|
629
|
-
2. **Generate a template**: Create your first mapping configuration
|
|
630
|
-
3. **Customize**: Edit the template to match your Fluent schema
|
|
631
|
-
4. **Use in SDK**: Load the mapping in your connector code
|
|
632
|
-
5. **Share**: Generate documentation for your team
|
|
633
|
-
|
|
634
|
-
**Need more help?**
|
|
635
|
-
- See [SDK Documentation](../02-CORE-GUIDES/mapping/modules/) for mapping guides
|
|
636
|
-
- Check [Templates](../01-TEMPLATES/) for complete integration examples
|
|
637
|
-
- Review [CLI Reference](../02-CORE-GUIDES/advanced-services/advanced-services-readme.md) for all available options
|
|
638
|
-
|
|
639
|
-
---
|
|
640
|
-
|
|
641
|
-
**Pro Tip:** Save time by generating both mapping and documentation in one command:
|
|
642
|
-
|
|
643
|
-
```bash
|
|
644
|
-
npx fc-connect analyze-source-structure \
|
|
645
|
-
--file ./your-data.xml \
|
|
646
|
-
--output ./config/mapping.json \
|
|
647
|
-
--markdown ./docs/analysis.md \
|
|
648
|
-
--direction ingest \
|
|
649
|
-
--mapper graphql
|
|
650
|
-
```
|
|
651
|
-
|
|
652
|
-
Now you have:
|
|
653
|
-
✅ Mapping template ready to use
|
|
654
|
-
✅ Documentation to share with your team
|
|
655
|
-
✅ Complete understanding of your data structure
|
|
1
|
+
# Analyze Source Structure CLI Tool - User Guide
|
|
2
|
+
|
|
3
|
+
**Tool:** `fc-connect analyze-source-structure`
|
|
4
|
+
**Purpose:** Analyze data files (XML, JSON, CSV, Parquet) and generate mapping templates for Fluent Commerce integrations
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Table of Contents
|
|
9
|
+
|
|
10
|
+
1. [What Is This Tool?](#what-is-this-tool)
|
|
11
|
+
2. [Why Use It?](#why-use-it)
|
|
12
|
+
3. [Getting Started](#getting-started)
|
|
13
|
+
4. [Quick Start Examples](#quick-start-examples)
|
|
14
|
+
5. [Common Workflows](#common-workflows)
|
|
15
|
+
6. [Understanding the Output](#understanding-the-output)
|
|
16
|
+
7. [Best Practices](#best-practices)
|
|
17
|
+
8. [Advanced Usage](#advanced-usage)
|
|
18
|
+
9. [Troubleshooting](#troubleshooting)
|
|
19
|
+
10. [FAQ](#faq)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## What Is This Tool?
|
|
24
|
+
|
|
25
|
+
The `analyze-source-structure` CLI tool helps you understand how data files are structured and automatically generates mapping configurations for the Fluent Connect SDK.
|
|
26
|
+
|
|
27
|
+
**What it does:**
|
|
28
|
+
- ✅ Parses your data files (XML, JSON, CSV, Parquet)
|
|
29
|
+
- ✅ Shows you exactly how the SDK sees your data
|
|
30
|
+
- ✅ Lists all available fields and paths for mapping
|
|
31
|
+
- ✅ Detects arrays, nested objects, and XML attributes
|
|
32
|
+
- ✅ Generates ready-to-use mapping templates
|
|
33
|
+
- ✅ Suggests appropriate data type resolvers (parseFloat, trim, etc.)
|
|
34
|
+
- ✅ Creates shareable documentation for your team
|
|
35
|
+
|
|
36
|
+
**What it doesn't do:**
|
|
37
|
+
- ❌ Doesn't modify your source files
|
|
38
|
+
- ❌ Doesn't connect to APIs
|
|
39
|
+
- ❌ Doesn't execute mappings (use the SDK for that)
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Why Use It?
|
|
44
|
+
|
|
45
|
+
### Problem: Manual Mapping Discovery is Time-Consuming
|
|
46
|
+
|
|
47
|
+
Without this tool, you'd need to:
|
|
48
|
+
1. Manually inspect your XML/JSON files
|
|
49
|
+
2. Figure out how the SDK parsers interpret the data
|
|
50
|
+
3. Manually write field paths (prone to errors)
|
|
51
|
+
4. Guess which resolvers to use (sdk.parseFloat vs sdk.parseInt?)
|
|
52
|
+
5. Trial-and-error to find the correct array structures
|
|
53
|
+
|
|
54
|
+
### Solution: Automated Analysis
|
|
55
|
+
|
|
56
|
+
With this tool, you get:
|
|
57
|
+
- **Instant visibility** - See all available fields in seconds
|
|
58
|
+
- **Accurate paths** - No typos or wrong paths
|
|
59
|
+
- **Smart suggestions** - Automatic resolver detection based on field names and data
|
|
60
|
+
- **Team collaboration** - Generate markdown docs to share with colleagues
|
|
61
|
+
- **Faster onboarding** - New developers understand data structure immediately
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Getting Started
|
|
66
|
+
|
|
67
|
+
### Installation
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# The tool is included with the SDK
|
|
71
|
+
npm install @fluentcommerce/fc-connect-sdk
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Basic Command
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
npx fc-connect analyze-source-structure --file <path-to-your-file>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
That's it! The tool will:
|
|
81
|
+
1. Auto-detect the file format (XML, JSON, CSV, Parquet)
|
|
82
|
+
2. Parse the file using SDK parsers
|
|
83
|
+
3. Display all available mapping paths
|
|
84
|
+
4. Show structure insights (arrays, attributes)
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Quick Start Examples
|
|
89
|
+
|
|
90
|
+
### Example 1: Analyze an XML File
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
npx fc-connect analyze-source-structure --file ./vendor-products.xml
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Output:**
|
|
97
|
+
```
|
|
98
|
+
📂 Parsing XML file: vendor-products.xml
|
|
99
|
+
|
|
100
|
+
🔍 Available Mapping Paths:
|
|
101
|
+
|
|
102
|
+
🏷️ Product.@sku
|
|
103
|
+
📄 Product.Name
|
|
104
|
+
📄 Product.Price
|
|
105
|
+
📋 Product.Variants.Variant[] (array)
|
|
106
|
+
🏷️ Product.Variants.Variant.@id
|
|
107
|
+
📄 Product.Variants.Variant.Size
|
|
108
|
+
|
|
109
|
+
📋 Structure Insights:
|
|
110
|
+
Root Element(s): Product
|
|
111
|
+
Arrays Detected: 1
|
|
112
|
+
- Product.Variants.Variant[] (array)
|
|
113
|
+
Attributes Detected: 2 (XML only)
|
|
114
|
+
- Product.@sku
|
|
115
|
+
- Product.Variants.Variant.@id
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Example 2: Generate Mapping Template
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
npx fc-connect analyze-source-structure \
|
|
122
|
+
--file ./vendor-products.xml \
|
|
123
|
+
--output ./product-mapping.json
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Creates:** `product-mapping.json`
|
|
127
|
+
```json
|
|
128
|
+
{
|
|
129
|
+
"version": "1.0.0",
|
|
130
|
+
"description": "Generated mapping template from XML analysis",
|
|
131
|
+
"fields": {
|
|
132
|
+
"sku": {
|
|
133
|
+
"source": "Product.@sku",
|
|
134
|
+
"resolver": "sdk.trim",
|
|
135
|
+
"comment": "SKU field detected - preserves format"
|
|
136
|
+
},
|
|
137
|
+
"name": {
|
|
138
|
+
"source": "Product.Name",
|
|
139
|
+
"resolver": "sdk.trim"
|
|
140
|
+
},
|
|
141
|
+
"price": {
|
|
142
|
+
"source": "Product.Price",
|
|
143
|
+
"resolver": "sdk.parseFloat",
|
|
144
|
+
"comment": "Price field detected - converts to number"
|
|
145
|
+
},
|
|
146
|
+
"Variant": {
|
|
147
|
+
"source": "Product.Variants.Variant[]",
|
|
148
|
+
"isArray": true,
|
|
149
|
+
"fields": {
|
|
150
|
+
"id": {
|
|
151
|
+
"source": "@id",
|
|
152
|
+
"comment": "Array item field - item is already context"
|
|
153
|
+
},
|
|
154
|
+
"size": {
|
|
155
|
+
"source": "Size"
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Example 3: Generate Documentation
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
npx fc-connect analyze-source-structure \
|
|
167
|
+
--file ./vendor-products.xml \
|
|
168
|
+
--markdown ./docs/vendor-analysis.md
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**Creates:** Complete documentation including:
|
|
172
|
+
- Input file sample (first 50 lines)
|
|
173
|
+
- CLI command used (reproducible)
|
|
174
|
+
- Parsed structure (JavaScript object)
|
|
175
|
+
- All mapping paths with visual indicators
|
|
176
|
+
- Complete mapping template
|
|
177
|
+
- Next steps guidance
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Common Workflows
|
|
182
|
+
|
|
183
|
+
### Workflow 1: New Integration - Understanding Source Data
|
|
184
|
+
|
|
185
|
+
**Scenario:** You've received XML files from a new vendor and need to understand their structure.
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# Step 1: Analyze the structure
|
|
189
|
+
npx fc-connect analyze-source-structure \
|
|
190
|
+
--file ./vendor-order-sample.xml \
|
|
191
|
+
--markdown ./docs/vendor-order-analysis.md
|
|
192
|
+
|
|
193
|
+
# Step 2: Review the documentation
|
|
194
|
+
# Open ./docs/vendor-order-analysis.md and review:
|
|
195
|
+
# - What fields are available?
|
|
196
|
+
# - What are the array structures?
|
|
197
|
+
# - Are there XML attributes?
|
|
198
|
+
|
|
199
|
+
# Step 3: Generate starting template
|
|
200
|
+
npx fc-connect analyze-source-structure \
|
|
201
|
+
--file ./vendor-order-sample.xml \
|
|
202
|
+
--output ./config/vendor-order-mapping.json \
|
|
203
|
+
--direction ingest \
|
|
204
|
+
--mapper graphql
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**What you get:**
|
|
208
|
+
- ✅ Complete understanding of vendor data structure
|
|
209
|
+
- ✅ Documentation you can share with your team
|
|
210
|
+
- ✅ Working mapping template ready to customize
|
|
211
|
+
|
|
212
|
+
### Workflow 2: CSV Data Migration
|
|
213
|
+
|
|
214
|
+
**Scenario:** Migrating inventory data from CSV to Fluent Commerce.
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# Step 1: Analyze CSV structure
|
|
218
|
+
npx fc-connect analyze-source-structure \
|
|
219
|
+
--file ./inventory.csv \
|
|
220
|
+
--output ./migration-mapping.json \
|
|
221
|
+
--direction extract \
|
|
222
|
+
--mapper universal
|
|
223
|
+
|
|
224
|
+
# Step 2: Review the generated mapping
|
|
225
|
+
# The tool detected columns and suggested resolvers:
|
|
226
|
+
# - "sku" → sdk.trim (preserves SKU format)
|
|
227
|
+
# - "price" → sdk.parseFloat (converts to number)
|
|
228
|
+
# - "quantity" → sdk.parseInt (converts to integer)
|
|
229
|
+
|
|
230
|
+
# Step 3: Customize field names to match Fluent schema
|
|
231
|
+
# Edit migration-mapping.json:
|
|
232
|
+
# - Rename "sku" to "skuRef"
|
|
233
|
+
# - Add "required: true" where needed
|
|
234
|
+
# - Adjust resolvers if necessary
|
|
235
|
+
|
|
236
|
+
# Step 4: Use in your migration script
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### Workflow 3: Debugging Mapping Issues
|
|
240
|
+
|
|
241
|
+
**Scenario:** Your mapping isn't working as expected. Fields aren't being extracted correctly.
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
# Problem: Field "Order.Items.Item.SKU" isn't mapping
|
|
245
|
+
# Solution: See how SDK actually parses your file
|
|
246
|
+
|
|
247
|
+
npx fc-connect analyze-source-structure \
|
|
248
|
+
--file ./problematic-order.xml \
|
|
249
|
+
--show-json
|
|
250
|
+
|
|
251
|
+
# Output shows the actual JavaScript object structure
|
|
252
|
+
# You discover: SDK stores it as "@sku" (XML attribute), not "SKU"
|
|
253
|
+
# Fix your mapping: "source": "@sku"
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Workflow 4: Team Collaboration
|
|
257
|
+
|
|
258
|
+
**Scenario:** Your team needs to understand a complex data source for a new integration.
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
# Generate comprehensive documentation
|
|
262
|
+
npx fc-connect analyze-source-structure \
|
|
263
|
+
--file ./sfcc-order-export.xml \
|
|
264
|
+
--output ./config/sfcc-order-mapping.json \
|
|
265
|
+
--markdown ./docs/sfcc-order-structure.md \
|
|
266
|
+
--direction ingest \
|
|
267
|
+
--mapper graphql
|
|
268
|
+
|
|
269
|
+
# Share ./docs/sfcc-order-structure.md with:
|
|
270
|
+
# - Developers (see the exact structure)
|
|
271
|
+
# - QA (understand test data requirements)
|
|
272
|
+
# - Product managers (review data fields)
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## Understanding the Output
|
|
278
|
+
|
|
279
|
+
### Console Output Explained
|
|
280
|
+
|
|
281
|
+
```
|
|
282
|
+
📂 Parsing XML file: inventory.xml
|
|
283
|
+
```
|
|
284
|
+
Confirms the file and format detected.
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
🔍 Available Mapping Paths:
|
|
288
|
+
|
|
289
|
+
🏷️ InventoryFeed.Items.Item.@sku
|
|
290
|
+
📄 InventoryFeed.Items.Item.ProductName
|
|
291
|
+
📋 InventoryFeed.Items.Item[] (array)
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**Icons:**
|
|
295
|
+
- 🏷️ = XML attribute (use @ prefix in mapping)
|
|
296
|
+
- 📄 = Regular scalar field
|
|
297
|
+
- 📋 = Array field (needs `isArray: true`)
|
|
298
|
+
|
|
299
|
+
### Mapping Template Structure
|
|
300
|
+
|
|
301
|
+
```json
|
|
302
|
+
{
|
|
303
|
+
"version": "1.0.0",
|
|
304
|
+
"fields": {
|
|
305
|
+
"fieldName": {
|
|
306
|
+
"source": "path.to.field", // ← Where to get data from
|
|
307
|
+
"resolver": "sdk.trim", // ← How to transform it
|
|
308
|
+
"required": true, // ← Validation (optional)
|
|
309
|
+
"comment": "Description" // ← For documentation
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
### Smart Resolver Detection
|
|
316
|
+
|
|
317
|
+
The tool analyzes field names and values to suggest appropriate resolvers:
|
|
318
|
+
|
|
319
|
+
| Field Name Contains | Sample Value | Suggested Resolver | Why? |
|
|
320
|
+
|-------------------|--------------|-------------------|------|
|
|
321
|
+
| `sku`, `code`, `barcode` | `"SKU-001"` | `sdk.trim` | Preserves format (leading zeros, hyphens) |
|
|
322
|
+
| `price`, `amount`, `cost` | `"19.99"` | `sdk.parseFloat` | Converts to decimal number |
|
|
323
|
+
| `quantity`, `count`, `id` | `"100"` | `sdk.parseInt` | Converts to integer |
|
|
324
|
+
| `email`, `mail` | `"USER@EXAMPLE.COM"` | `sdk.lowercase` | Normalizes email addresses |
|
|
325
|
+
| `date`, `timestamp` | `"2024-01-15"` | `sdk.parseDate` | Converts to date object |
|
|
326
|
+
| `version`, `build`, `tag` | `"2024-01-15"` | `sdk.trim` | Preserves version strings |
|
|
327
|
+
|
|
328
|
+
**Important:** These are suggestions! Always review and adjust based on your specific requirements.
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## Best Practices
|
|
333
|
+
|
|
334
|
+
### 1. Always Use Markdown for Complex Files
|
|
335
|
+
|
|
336
|
+
```bash
|
|
337
|
+
# ✅ GOOD - Creates shareable documentation
|
|
338
|
+
npx fc-connect analyze-source-structure \
|
|
339
|
+
--file ./complex-order.xml \
|
|
340
|
+
--markdown ./docs/order-analysis.md
|
|
341
|
+
|
|
342
|
+
# ❌ LESS IDEAL - Console output only (hard to review later)
|
|
343
|
+
npx fc-connect analyze-source-structure \
|
|
344
|
+
--file ./complex-order.xml
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
### 2. Specify Mapper Type for Better Templates
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
# For XML/JSON → GraphQL ingestion
|
|
351
|
+
npx fc-connect analyze-source-structure \
|
|
352
|
+
--file ./order.xml \
|
|
353
|
+
--mapper graphql \
|
|
354
|
+
--direction ingest
|
|
355
|
+
|
|
356
|
+
# For CSV → Batch API
|
|
357
|
+
npx fc-connect analyze-source-structure \
|
|
358
|
+
--file ./inventory.csv \
|
|
359
|
+
--mapper universal \
|
|
360
|
+
--direction extract
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
### 3. Review and Customize Generated Templates
|
|
364
|
+
|
|
365
|
+
Generated templates are a **starting point**, not the final solution:
|
|
366
|
+
|
|
367
|
+
```json
|
|
368
|
+
// Generated template
|
|
369
|
+
{
|
|
370
|
+
"sku": {
|
|
371
|
+
"source": "@sku",
|
|
372
|
+
"resolver": "sdk.trim"
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
// Customize for your needs
|
|
377
|
+
{
|
|
378
|
+
"skuRef": { // ← Rename to match Fluent schema
|
|
379
|
+
"source": "@sku",
|
|
380
|
+
"resolver": "sdk.trim",
|
|
381
|
+
"required": true, // ← Add validation
|
|
382
|
+
"comment": "Product SKU" // ← Update comment
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
### 4. Use Sample Files for Analysis
|
|
388
|
+
|
|
389
|
+
```bash
|
|
390
|
+
# ✅ GOOD - Small representative sample
|
|
391
|
+
npx fc-connect analyze-source-structure --file ./order-sample.xml
|
|
392
|
+
|
|
393
|
+
# ❌ AVOID - Huge production file (slower, same results)
|
|
394
|
+
npx fc-connect analyze-source-structure --file ./orders-full-10gb.xml
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
The tool samples data intelligently:
|
|
398
|
+
- CSV/Parquet: First 100 rows
|
|
399
|
+
- XML/JSON: Full file (but docs show first 50 lines)
|
|
400
|
+
|
|
401
|
+
### 5. Version Control Your Mappings
|
|
402
|
+
|
|
403
|
+
```bash
|
|
404
|
+
# Generate mapping template
|
|
405
|
+
npx fc-connect analyze-source-structure \
|
|
406
|
+
--file ./vendor-products.xml \
|
|
407
|
+
--output ./config/vendor-mapping.json
|
|
408
|
+
|
|
409
|
+
# Commit to version control
|
|
410
|
+
git add ./config/vendor-mapping.json
|
|
411
|
+
git commit -m "feat: add vendor product mapping template"
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
## Advanced Usage
|
|
417
|
+
|
|
418
|
+
### Option 1: Show Parsed Structure
|
|
419
|
+
|
|
420
|
+
```bash
|
|
421
|
+
# See exactly how SDK parsers interpret your file
|
|
422
|
+
npx fc-connect analyze-source-structure \
|
|
423
|
+
--file ./order.xml \
|
|
424
|
+
--show-json
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
**Use when:**
|
|
428
|
+
- Debugging why a field isn't mapping
|
|
429
|
+
- Understanding nested object structures
|
|
430
|
+
- Verifying array structures
|
|
431
|
+
|
|
432
|
+
### Option 2: Multiple Output Formats
|
|
433
|
+
|
|
434
|
+
```bash
|
|
435
|
+
# Generate both mapping template AND documentation
|
|
436
|
+
npx fc-connect analyze-source-structure \
|
|
437
|
+
--file ./products.xml \
|
|
438
|
+
--output ./config/product-mapping.json \
|
|
439
|
+
--markdown ./docs/product-analysis.md \
|
|
440
|
+
--direction ingest \
|
|
441
|
+
--mapper graphql
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
### Option 3: Parquet Analysis
|
|
445
|
+
|
|
446
|
+
```bash
|
|
447
|
+
# Analyze Parquet files (first 100 records)
|
|
448
|
+
npx fc-connect analyze-source-structure \
|
|
449
|
+
--file ./events.parquet \
|
|
450
|
+
--format parquet \
|
|
451
|
+
--output ./event-mapping.json
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
### Option 4: Custom Markdown Path
|
|
455
|
+
|
|
456
|
+
```bash
|
|
457
|
+
# Specify custom documentation path
|
|
458
|
+
npx fc-connect analyze-source-structure \
|
|
459
|
+
--file ./inventory.csv \
|
|
460
|
+
--markdown ./team-docs/inventory-structure.md
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
---
|
|
464
|
+
|
|
465
|
+
## Troubleshooting
|
|
466
|
+
|
|
467
|
+
### Problem: "Cannot find module"
|
|
468
|
+
|
|
469
|
+
```bash
|
|
470
|
+
# Error: Cannot find module '@fluentcommerce/fc-connect-sdk'
|
|
471
|
+
|
|
472
|
+
# Solution: Install the SDK
|
|
473
|
+
npm install @fluentcommerce/fc-connect-sdk
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
### Problem: "File not found"
|
|
477
|
+
|
|
478
|
+
```bash
|
|
479
|
+
# Error: ENOENT: no such file or directory
|
|
480
|
+
|
|
481
|
+
# Solution: Use absolute or correct relative path
|
|
482
|
+
npx fc-connect analyze-source-structure --file ./correct-path/file.xml
|
|
483
|
+
|
|
484
|
+
# Or use absolute path
|
|
485
|
+
npx fc-connect analyze-source-structure --file /full/path/to/file.xml
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
### Problem: "Format not detected"
|
|
489
|
+
|
|
490
|
+
```bash
|
|
491
|
+
# Error: Could not detect format
|
|
492
|
+
|
|
493
|
+
# Solution: Specify format explicitly
|
|
494
|
+
npx fc-connect analyze-source-structure \
|
|
495
|
+
--file ./myfile.dat \
|
|
496
|
+
--format xml
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
### Problem: XML Attributes Not Showing
|
|
500
|
+
|
|
501
|
+
```bash
|
|
502
|
+
# Issue: XML attributes like 'id="123"' not in output
|
|
503
|
+
|
|
504
|
+
# Check: Make sure your XML has attributes
|
|
505
|
+
# The tool automatically includes attributes with @ prefix
|
|
506
|
+
# If you don't see attributes, they might not exist in your XML
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
### Problem: Array Fields Not Detected
|
|
510
|
+
|
|
511
|
+
```bash
|
|
512
|
+
# Issue: Tool shows field but not as array
|
|
513
|
+
|
|
514
|
+
# Cause: Your sample file might have only one item
|
|
515
|
+
# Solution: Provide a sample with multiple items in the array
|
|
516
|
+
|
|
517
|
+
# Example:
|
|
518
|
+
# ❌ Single item (tool can't detect it's an array)
|
|
519
|
+
<Items>
|
|
520
|
+
<Item>Product 1</Item>
|
|
521
|
+
</Items>
|
|
522
|
+
|
|
523
|
+
# ✅ Multiple items (tool detects array)
|
|
524
|
+
<Items>
|
|
525
|
+
<Item>Product 1</Item>
|
|
526
|
+
<Item>Product 2</Item>
|
|
527
|
+
</Items>
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
### Problem: Resolver Suggestions Incorrect
|
|
531
|
+
|
|
532
|
+
```bash
|
|
533
|
+
# Issue: Field "productCode" suggested as parseInt, should be trim
|
|
534
|
+
|
|
535
|
+
# Cause: Value "12345" looks numeric
|
|
536
|
+
# Solution: This is now FIXED in latest SDK version
|
|
537
|
+
# Code/SKU fields are detected BEFORE numeric detection
|
|
538
|
+
|
|
539
|
+
# If you still see issues, customize the generated template:
|
|
540
|
+
{
|
|
541
|
+
"productCode": {
|
|
542
|
+
"source": "code",
|
|
543
|
+
"resolver": "sdk.trim" // ← Override suggestion
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
---
|
|
549
|
+
|
|
550
|
+
## FAQ
|
|
551
|
+
|
|
552
|
+
### Q: What file formats are supported?
|
|
553
|
+
|
|
554
|
+
**A:** XML, JSON, CSV, and Parquet files.
|
|
555
|
+
|
|
556
|
+
### Q: Does this tool connect to the Fluent API?
|
|
557
|
+
|
|
558
|
+
**A:** No, it only analyzes local files. It uses the same parsers as the SDK, so the output matches runtime behavior.
|
|
559
|
+
|
|
560
|
+
### Q: Can I use this on production data?
|
|
561
|
+
|
|
562
|
+
**A:** Yes! The tool only reads files, never modifies them. However, use sample files when possible (faster analysis, same results).
|
|
563
|
+
|
|
564
|
+
### Q: How do I use the generated mapping template?
|
|
565
|
+
|
|
566
|
+
**A:** Import it in your connector code:
|
|
567
|
+
|
|
568
|
+
```typescript
|
|
569
|
+
import mappingConfig from './product-mapping.json' with { type: 'json' };
|
|
570
|
+
import { UniversalMapper } from '@fluentcommerce/fc-connect-sdk';
|
|
571
|
+
|
|
572
|
+
const mapper = new UniversalMapper(mappingConfig);
|
|
573
|
+
const result = await mapper.map(sourceData);
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
### Q: Can I customize the resolver suggestions?
|
|
577
|
+
|
|
578
|
+
**A:** Yes! The suggestions are just a starting point. Edit the generated JSON file to match your needs.
|
|
579
|
+
|
|
580
|
+
### Q: What's the difference between `--mapper universal` and `--mapper graphql`?
|
|
581
|
+
|
|
582
|
+
**A:**
|
|
583
|
+
- `universal`: For CSV/Parquet → Batch API (uses item-relative paths like `"source": "sku"`)
|
|
584
|
+
- `graphql`: For XML/JSON → GraphQL mutations (uses `$.` prefix like `"source": "$.sku"`)
|
|
585
|
+
|
|
586
|
+
Choose based on your integration pattern.
|
|
587
|
+
|
|
588
|
+
### Q: How do I handle huge files?
|
|
589
|
+
|
|
590
|
+
**A:** The tool samples data intelligently:
|
|
591
|
+
- CSV/Parquet: First 100 rows
|
|
592
|
+
- XML/JSON: Full file (but analysis is fast)
|
|
593
|
+
|
|
594
|
+
You don't need to provide the entire dataset—a representative sample is enough.
|
|
595
|
+
|
|
596
|
+
### Q: Can I use this for Versori connectors?
|
|
597
|
+
|
|
598
|
+
**A:** Yes! The tool works for both standalone Node.js apps and Versori connectors. The mapping format is the same.
|
|
599
|
+
|
|
600
|
+
### Q: What if my field paths are incorrect?
|
|
601
|
+
|
|
602
|
+
**A:** Use `--show-json` to see exactly how the SDK parses your file:
|
|
603
|
+
|
|
604
|
+
```bash
|
|
605
|
+
npx fc-connect analyze-source-structure \
|
|
606
|
+
--file ./your-file.xml \
|
|
607
|
+
--show-json
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
This shows the actual JavaScript object structure, making it easy to identify correct paths.
|
|
611
|
+
|
|
612
|
+
### Q: How do I share analysis with my team?
|
|
613
|
+
|
|
614
|
+
**A:** Generate markdown documentation:
|
|
615
|
+
|
|
616
|
+
```bash
|
|
617
|
+
npx fc-connect analyze-source-structure \
|
|
618
|
+
--file ./data.xml \
|
|
619
|
+
--markdown ./docs/analysis.md
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
Share the markdown file—it's self-contained and includes everything your team needs.
|
|
623
|
+
|
|
624
|
+
---
|
|
625
|
+
|
|
626
|
+
## Next Steps
|
|
627
|
+
|
|
628
|
+
1. **Try it yourself**: Run the tool on one of your data files
|
|
629
|
+
2. **Generate a template**: Create your first mapping configuration
|
|
630
|
+
3. **Customize**: Edit the template to match your Fluent schema
|
|
631
|
+
4. **Use in SDK**: Load the mapping in your connector code
|
|
632
|
+
5. **Share**: Generate documentation for your team
|
|
633
|
+
|
|
634
|
+
**Need more help?**
|
|
635
|
+
- See [SDK Documentation](../02-CORE-GUIDES/mapping/modules/) for mapping guides
|
|
636
|
+
- Check [Templates](../01-TEMPLATES/) for complete integration examples
|
|
637
|
+
- Review [CLI Reference](../02-CORE-GUIDES/advanced-services/advanced-services-readme.md) for all available options
|
|
638
|
+
|
|
639
|
+
---
|
|
640
|
+
|
|
641
|
+
**Pro Tip:** Save time by generating both mapping and documentation in one command:
|
|
642
|
+
|
|
643
|
+
```bash
|
|
644
|
+
npx fc-connect analyze-source-structure \
|
|
645
|
+
--file ./your-data.xml \
|
|
646
|
+
--output ./config/mapping.json \
|
|
647
|
+
--markdown ./docs/analysis.md \
|
|
648
|
+
--direction ingest \
|
|
649
|
+
--mapper graphql
|
|
650
|
+
```
|
|
651
|
+
|
|
652
|
+
Now you have:
|
|
653
|
+
✅ Mapping template ready to use
|
|
654
|
+
✅ Documentation to share with your team
|
|
655
|
+
✅ Complete understanding of your data structure
|