@fluentcommerce/fc-connect-sdk 0.1.54 → 0.1.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/cjs/clients/fluent-client.js +13 -6
- package/dist/cjs/utils/pagination-helpers.js +38 -2
- package/dist/cjs/versori/fluent-versori-client.js +11 -5
- package/dist/esm/clients/fluent-client.js +13 -6
- package/dist/esm/utils/pagination-helpers.js +38 -2
- package/dist/esm/versori/fluent-versori-client.js +11 -5
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/docs/00-START-HERE/EXPORT-VALIDATION.md +158 -158
- package/docs/00-START-HERE/cli-analyze-source-structure-guide.md +655 -655
- package/docs/00-START-HERE/cli-documentation-index.md +202 -202
- package/docs/00-START-HERE/cli-quick-reference.md +252 -252
- package/docs/00-START-HERE/decision-tree.md +552 -552
- package/docs/00-START-HERE/getting-started.md +1070 -1070
- package/docs/00-START-HERE/mapper-quick-decision-guide.md +235 -235
- package/docs/00-START-HERE/readme.md +237 -237
- package/docs/00-START-HERE/retailerid-configuration.md +404 -404
- package/docs/00-START-HERE/sdk-philosophy.md +794 -794
- package/docs/00-START-HERE/troubleshooting-quick-reference.md +1086 -1086
- package/docs/01-TEMPLATES/faq.md +686 -686
- package/docs/01-TEMPLATES/patterns/pattern-templates-guide.md +68 -68
- package/docs/01-TEMPLATES/patterns/patterns-csv-schema-validation-and-rejection-report.md +233 -233
- package/docs/01-TEMPLATES/patterns/patterns-custom-resolvers.md +407 -407
- package/docs/01-TEMPLATES/patterns/patterns-error-handling-retry.md +511 -511
- package/docs/01-TEMPLATES/patterns/patterns-field-mapping-universal.md +701 -701
- package/docs/01-TEMPLATES/patterns/patterns-large-file-splitting.md +1430 -1430
- package/docs/01-TEMPLATES/patterns/patterns-master-data-etl.md +2399 -2399
- package/docs/01-TEMPLATES/patterns/patterns-pagination-streaming.md +447 -447
- package/docs/01-TEMPLATES/patterns/patterns-state-duplicate-prevention.md +385 -385
- package/docs/01-TEMPLATES/readme.md +957 -957
- package/docs/01-TEMPLATES/standalone/standalone-asn-inbound-processing.md +1209 -1209
- package/docs/01-TEMPLATES/standalone/standalone-graphql-query-export.md +1140 -1140
- package/docs/01-TEMPLATES/standalone/standalone-graphql-to-parquet-partitioned-s3.md +432 -432
- package/docs/01-TEMPLATES/standalone/standalone-multi-channel-inventory-sync.md +1185 -1185
- package/docs/01-TEMPLATES/standalone/standalone-multi-source-aggregation.md +1462 -1462
- package/docs/01-TEMPLATES/standalone/standalone-s3-csv-batch-api.md +1390 -1390
- package/docs/01-TEMPLATES/standalone/standalone-s3-csv-inventory-to-batch.md +330 -330
- package/docs/01-TEMPLATES/standalone/standalone-scripts-guide.md +87 -87
- package/docs/01-TEMPLATES/standalone/standalone-sftp-xml-graphql.md +1444 -1444
- package/docs/01-TEMPLATES/standalone/standalone-webhook-payload-processing.md +688 -688
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-dropship-order-routing.md +193 -193
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-graphql-parquet-extraction.md +518 -518
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-inter-location-transfers.md +2162 -2162
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-pre-order-allocation.md +2226 -2226
- package/docs/01-TEMPLATES/versori/business-examples/business-scenarios-guide.md +87 -87
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-connection-validation-pattern.md +656 -656
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-dual-workflow-connector.md +835 -835
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-guide.md +108 -108
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-kv-state-management.md +1533 -1533
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-xml-response-patterns.md +1160 -1160
- package/docs/01-TEMPLATES/versori/versori-platform-guide.md +201 -201
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-asn-purchase-order.md +1906 -1906
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-dropship-routing.md +1074 -1074
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-flash-sale-reserve.md +1395 -1395
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-generic-xml-order.md +888 -888
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-payment-gateway-integration.md +2478 -2478
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-rma-returns-comprehensive.md +2240 -2240
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-xml-order-ingestion.md +2029 -2029
- package/docs/01-TEMPLATES/versori/webhooks/webhook-templates-guide.md +140 -140
- package/docs/01-TEMPLATES/versori/workflows/_examples/sample-data/inventory-mapping.json +20 -20
- package/docs/01-TEMPLATES/versori/workflows/_examples/sample-data/products_2025-01-22.csv +11 -11
- package/docs/01-TEMPLATES/versori/workflows/_examples/sample-data/sample-data-guide.md +34 -34
- package/docs/01-TEMPLATES/versori/workflows/_examples/workflow-examples-guide.md +36 -36
- package/docs/01-TEMPLATES/versori/workflows/extraction/extraction-modes-guide.md +1038 -1038
- package/docs/01-TEMPLATES/versori/workflows/extraction/extraction-workflows-guide.md +138 -138
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/graphql-extraction-guide.md +63 -63
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-fulfillments-to-sftp-csv.md +2062 -2062
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-fulfillments-to-sftp-xml.md +2294 -2294
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-positions-to-s3-csv.md +2461 -2461
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-positions-to-sftp-xml.md +2529 -2529
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-quantities-to-s3-csv.md +2464 -2464
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-quantities-to-s3-json.md +1959 -1959
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-orders-to-s3-csv.md +1953 -1953
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-orders-to-sftp-xml.md +2541 -2541
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-products-to-s3-json.md +2384 -2384
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-products-to-sftp-xml.md +2445 -2445
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-virtual-positions-to-s3-csv.md +2355 -2355
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-virtual-positions-to-s3-json.md +2042 -2042
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-virtual-positions-to-sftp-xml.md +2726 -2726
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/batch-api-guide.md +206 -206
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-cycle-count-reconciliation.md +2030 -2030
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-multi-channel-inventory-sync.md +1882 -1882
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-s3-csv-inventory-batch.md +2827 -2827
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-s3-json-inventory-batch.md +1952 -1952
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-s3-xml-inventory-batch.md +3289 -3289
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-sftp-csv-inventory-batch.md +3064 -3064
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-sftp-json-inventory-batch.md +3238 -3238
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-sftp-xml-inventory-batch.md +2977 -2977
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/event-api-guide.md +321 -321
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-payload-json-order-cancel-event.md +959 -959
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-payload-xml-order-cancel-event.md +1170 -1170
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-csv-product-event.md +2312 -2312
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-json-product-event.md +2999 -2999
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-parquet-product-event.md +2836 -2836
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-xml-product-event.md +2395 -2395
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-csv-product-event.md +2295 -2295
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-json-product-event.md +2602 -2602
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-parquet-product-event.md +2589 -2589
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-xml-product-event.md +3578 -3578
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/graphql-mutations-guide.md +93 -93
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-payload-json-order-update-graphql.md +1260 -1260
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-payload-xml-order-update-graphql.md +1472 -1472
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-csv-control-graphql.md +2417 -2417
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-csv-location-graphql.md +2811 -2811
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-csv-price-graphql.md +2619 -2619
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-json-location-graphql.md +2807 -2807
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-xml-location-graphql.md +2373 -2373
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-sftp-csv-control-graphql.md +2740 -2740
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-sftp-csv-location-graphql.md +2760 -2760
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-sftp-json-location-graphql.md +1710 -1710
- package/docs/01-TEMPLATES/versori/workflows/ingestion/ingestion-workflows-guide.md +136 -136
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/rubix-webhooks-guide.md +520 -520
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/template-webhook-rubix-fulfilment-to-sftp-xml-inline.md +1418 -1418
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/template-webhook-rubix-fulfilment-to-sftp-xml-universal-mapper.md +1785 -1785
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/template-webhook-rubix-order-attribute-update.md +824 -824
- package/docs/01-TEMPLATES/versori/workflows/workflows-overview-guide.md +646 -646
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-batch-archival.md +724 -724
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-job-tracker.md +627 -627
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-partial-batch-recovery.md +561 -561
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-quick-reference.md +367 -367
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-readme.md +407 -407
- package/docs/02-CORE-GUIDES/advanced-services/readme.md +49 -49
- package/docs/02-CORE-GUIDES/api-reference/api-reference-quick-reference.md +548 -548
- package/docs/02-CORE-GUIDES/api-reference/event-api-input-output-reference.md +702 -1171
- package/docs/02-CORE-GUIDES/api-reference/examples/client-initialization.ts +286 -286
- package/docs/02-CORE-GUIDES/api-reference/graphql-error-classification.md +337 -337
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-01-client-api.md +399 -520
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-03-authentication.md +199 -199
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-04-graphql-mapping.md +925 -925
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-05-services.md +1198 -1198
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-06-data-sources.md +1083 -1083
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-07-parsers.md +1097 -1097
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-08-pagination.md +513 -513
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-08-types.md +545 -597
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-09-error-handling.md +527 -527
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-09-webhook-validation.md +514 -514
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-10-extraction.md +557 -557
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-10-utilities.md +412 -412
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-11-cli-tools.md +423 -423
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-11-error-handling.md +716 -716
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-12-analyze-source-structure.md +518 -518
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-12-partial-responses.md +212 -212
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-12-testing.md +300 -300
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-13-resolver-builder.md +322 -322
- package/docs/02-CORE-GUIDES/api-reference/readme.md +279 -279
- package/docs/02-CORE-GUIDES/auto-pagination/auto-pagination-quick-reference.md +351 -351
- package/docs/02-CORE-GUIDES/auto-pagination/auto-pagination-readme.md +277 -277
- package/docs/02-CORE-GUIDES/auto-pagination/examples/auto-pagination-readme.md +178 -178
- package/docs/02-CORE-GUIDES/auto-pagination/examples/common-patterns.ts +351 -351
- package/docs/02-CORE-GUIDES/auto-pagination/examples/paginate-products.ts +384 -384
- package/docs/02-CORE-GUIDES/auto-pagination/examples/paginate-virtual-positions.ts +308 -308
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-01-foundations.md +470 -470
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-02-quick-start.md +713 -713
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-03-configuration.md +754 -754
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-04-advanced-patterns.md +732 -732
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-05-sdk-integration.md +847 -847
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-06-troubleshooting.md +359 -359
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-07-api-reference.md +462 -462
- package/docs/02-CORE-GUIDES/auto-pagination/readme.md +54 -54
- package/docs/02-CORE-GUIDES/data-sources/data-sources-file-operations-error-handling.md +1487 -1487
- package/docs/02-CORE-GUIDES/data-sources/data-sources-quick-reference.md +836 -836
- package/docs/02-CORE-GUIDES/data-sources/data-sources-readme.md +276 -276
- package/docs/02-CORE-GUIDES/data-sources/data-sources-sftp-credential-access-security.md +553 -553
- package/docs/02-CORE-GUIDES/data-sources/examples/common-patterns.ts +409 -409
- package/docs/02-CORE-GUIDES/data-sources/examples/data-sources-readme.md +178 -178
- package/docs/02-CORE-GUIDES/data-sources/examples/s3-operations.ts +308 -308
- package/docs/02-CORE-GUIDES/data-sources/examples/sftp-operations.ts +371 -371
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-01-foundations.md +735 -735
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-02-s3-operations.md +1302 -1302
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-03-sftp-operations.md +1379 -1379
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-04-file-patterns.md +941 -941
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-05-advanced-topics.md +813 -813
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-06-integration-patterns.md +486 -486
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-07-troubleshooting.md +387 -387
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-08-api-reference.md +417 -417
- package/docs/02-CORE-GUIDES/data-sources/readme.md +77 -77
- package/docs/02-CORE-GUIDES/error-handling-guide.md +936 -936
- package/docs/02-CORE-GUIDES/extraction/examples/02-core-guides-extraction-readme.md +116 -116
- package/docs/02-CORE-GUIDES/extraction/examples/common-patterns.ts +428 -428
- package/docs/02-CORE-GUIDES/extraction/examples/extract-inventory-basic.ts +187 -187
- package/docs/02-CORE-GUIDES/extraction/extraction-quick-reference.md +596 -596
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-01-foundations.md +514 -514
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-02-basic-extraction.md +823 -823
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-03-parquet-processing.md +507 -507
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-04-data-enrichment.md +546 -546
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-05-transformation.md +494 -494
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-06-export-formats.md +458 -458
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-06-performance.md +138 -138
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-07-api-reference.md +148 -148
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-07-optimization.md +692 -692
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-08-extraction-orchestrator.md +1008 -1008
- package/docs/02-CORE-GUIDES/extraction/readme.md +151 -151
- package/docs/02-CORE-GUIDES/ingestion/examples/_simple-kv-store.ts +40 -40
- package/docs/02-CORE-GUIDES/ingestion/examples/error-recovery.ts +728 -728
- package/docs/02-CORE-GUIDES/ingestion/examples/event-driven.ts +501 -501
- package/docs/02-CORE-GUIDES/ingestion/examples/local-file-ingestion.ts +88 -88
- package/docs/02-CORE-GUIDES/ingestion/examples/parquet-ingestion.ts +117 -117
- package/docs/02-CORE-GUIDES/ingestion/examples/performance-optimized.ts +647 -647
- package/docs/02-CORE-GUIDES/ingestion/examples/s3-csv-ingestion.ts +169 -169
- package/docs/02-CORE-GUIDES/ingestion/examples/sftp-csv-ingestion.ts +134 -134
- package/docs/02-CORE-GUIDES/ingestion/ingestion-quick-reference.md +546 -546
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-01-introduction.md +626 -626
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-02-quick-start.md +658 -658
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-03-data-sources.md +1052 -1052
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-04-field-mapping.md +763 -763
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-05-advanced-parsers.md +676 -676
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-06-batch-api.md +1295 -1295
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-07-api-reference.md +138 -138
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-07-state-management.md +1037 -1037
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-08-performance-optimization.md +1349 -1349
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-09-best-practices.md +1893 -1893
- package/docs/02-CORE-GUIDES/ingestion/readme.md +160 -160
- package/docs/02-CORE-GUIDES/logging-guide.md +585 -585
- package/docs/02-CORE-GUIDES/mapping/error-handling-patterns.md +401 -401
- package/docs/02-CORE-GUIDES/mapping/examples/02-core-guides-mapping-readme.md +128 -128
- package/docs/02-CORE-GUIDES/mapping/examples/common-patterns.ts +273 -273
- package/docs/02-CORE-GUIDES/mapping/examples/csv-location-ingestion.json +36 -36
- package/docs/02-CORE-GUIDES/mapping/examples/csv-mapping.ts +242 -242
- package/docs/02-CORE-GUIDES/mapping/examples/graphql-to-parquet-extraction.json +36 -36
- package/docs/02-CORE-GUIDES/mapping/examples/json-mapping.ts +213 -213
- package/docs/02-CORE-GUIDES/mapping/examples/json-product-to-mutation.json +48 -48
- package/docs/02-CORE-GUIDES/mapping/examples/xml-mapping.ts +291 -291
- package/docs/02-CORE-GUIDES/mapping/examples/xml-order-to-mutation.json +45 -45
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/graphql-mutation-mapping-quick-reference.md +463 -463
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/graphql-mutation-mapping-readme.md +227 -227
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-01-introduction.md +222 -222
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-02-quick-start.md +351 -351
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-03-schema-validation.md +569 -569
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-04-mapping-patterns.md +471 -471
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-05-configuration-reference.md +611 -611
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-06-advanced-xpath.md +148 -148
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-06-path-syntax.md +464 -464
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-07-api-reference.md +94 -94
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-07-array-handling.md +307 -307
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-08-custom-resolvers.md +544 -544
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-09-advanced-patterns.md +427 -427
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-10-hooks-and-variables.md +336 -336
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-11-error-handling.md +488 -488
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-12-arguments-vs-nodes.md +383 -383
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-13-best-practices.md +477 -477
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/readme.md +62 -62
- package/docs/02-CORE-GUIDES/mapping/mapping-format-decision-tree.md +480 -480
- package/docs/02-CORE-GUIDES/mapping/mapping-graphql-alias-batching-guide.md +820 -820
- package/docs/02-CORE-GUIDES/mapping/mapping-javascript-objects.md +2369 -2369
- package/docs/02-CORE-GUIDES/mapping/mapping-mapper-comparison-guide.md +682 -682
- package/docs/02-CORE-GUIDES/mapping/modules/02-core-guides-mapping-07-api-reference.md +1327 -1327
- package/docs/02-CORE-GUIDES/mapping/modules/02-core-guides-mapping-08-error-handling.md +1142 -1142
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-04-use-cases.md +891 -891
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-06-helpers-resolvers.md +1126 -1126
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-06-sdk-resolvers.md +199 -199
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-07-api-reference.md +1319 -1319
- package/docs/02-CORE-GUIDES/mapping/readme.md +178 -178
- package/docs/02-CORE-GUIDES/mapping/resolver-registration.md +410 -410
- package/docs/02-CORE-GUIDES/mapping/resolvers/examples/common-patterns.ts +226 -226
- package/docs/02-CORE-GUIDES/mapping/resolvers/examples/custom-resolvers.ts +227 -227
- package/docs/02-CORE-GUIDES/mapping/resolvers/examples/sdk-resolvers-usage.ts +203 -203
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-readme.md +274 -274
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-api-reference.md +679 -679
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-cookbook.md +826 -826
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-guide.md +1330 -1330
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-helpers-reference.md +1437 -1437
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-parameters-reference.md +553 -553
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-troubleshooting.md +854 -854
- package/docs/02-CORE-GUIDES/mapping/resolvers/readme.md +75 -75
- package/docs/02-CORE-GUIDES/parsers/examples/02-core-guides-parsers-readme.md +161 -161
- package/docs/02-CORE-GUIDES/parsers/examples/csv-parser-examples.ts +110 -110
- package/docs/02-CORE-GUIDES/parsers/examples/json-parser-examples.ts +33 -33
- package/docs/02-CORE-GUIDES/parsers/examples/parquet-parser-examples.ts +47 -47
- package/docs/02-CORE-GUIDES/parsers/examples/xml-parser-examples.ts +38 -38
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-01-foundations.md +355 -355
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-02-csv-parser.md +772 -772
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-03-json-parser.md +789 -789
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-04-xml-parser.md +857 -857
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-05-parquet-parser.md +603 -603
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-06-integration-patterns.md +702 -702
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-06-streaming.md +121 -121
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-07-api-reference.md +89 -89
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-07-troubleshooting.md +727 -727
- package/docs/02-CORE-GUIDES/parsers/parsers-quick-reference.md +482 -482
- package/docs/02-CORE-GUIDES/parsers/parsers-readme.md +258 -258
- package/docs/02-CORE-GUIDES/parsers/readme.md +65 -65
- package/docs/02-CORE-GUIDES/readme.md +194 -194
- package/docs/02-CORE-GUIDES/webhook-validation/examples/basic-validation.ts +108 -108
- package/docs/02-CORE-GUIDES/webhook-validation/examples/common-patterns.ts +316 -316
- package/docs/02-CORE-GUIDES/webhook-validation/examples/webhook-validation-readme.md +61 -61
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-01-foundations.md +440 -440
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-02-quick-start.md +525 -525
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-03-versori-integration.md +741 -741
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-04-platform-integration.md +629 -629
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-05-configuration.md +535 -535
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-06-error-handling.md +611 -611
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-06-troubleshooting.md +124 -124
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-07-api-reference.md +511 -511
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-08-rubix-webhooks.md +590 -590
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-09-rubix-event-vs-http-call.md +432 -432
- package/docs/02-CORE-GUIDES/webhook-validation/readme.md +239 -239
- package/docs/02-CORE-GUIDES/webhook-validation/webhook-validation-quick-reference.md +392 -392
- package/docs/03-PATTERN-GUIDES/connector-scenarios/connector-scenarios-quick-reference.md +498 -498
- package/docs/03-PATTERN-GUIDES/connector-scenarios/connector-scenarios-readme.md +313 -313
- package/docs/03-PATTERN-GUIDES/connector-scenarios/examples/common-patterns.ts +612 -612
- package/docs/03-PATTERN-GUIDES/connector-scenarios/examples/connector-scenarios-readme.md +253 -253
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-01-foundations.md +452 -452
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-02-simple-scenarios.md +681 -681
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-03-intermediate-scenarios.md +637 -637
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-04-advanced-scenarios.md +650 -650
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-05-bidirectional-sync.md +233 -233
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-06-production-patterns.md +442 -442
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-07-reference.md +445 -445
- package/docs/03-PATTERN-GUIDES/connector-scenarios/readme.md +31 -31
- package/docs/03-PATTERN-GUIDES/enterprise-integration-patterns.md +1528 -1528
- package/docs/03-PATTERN-GUIDES/error-handling/comprehensive-error-handling-guide.md +1437 -1437
- package/docs/03-PATTERN-GUIDES/error-handling/error-handling-quick-reference.md +390 -390
- package/docs/03-PATTERN-GUIDES/error-handling/examples/common-patterns.ts +438 -438
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-01-foundations.md +362 -362
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-02-error-types.md +850 -850
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-03-utf8-handling.md +456 -456
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-04-error-scenarios.md +658 -658
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-05-calling-patterns.md +671 -671
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-06-retry-strategies.md +1034 -1034
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-07-monitoring.md +653 -653
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-08-api-reference.md +847 -847
- package/docs/03-PATTERN-GUIDES/error-handling/readme.md +36 -36
- package/docs/03-PATTERN-GUIDES/examples/__tests__/readme.md +40 -40
- package/docs/03-PATTERN-GUIDES/examples/__tests__/resolver-examples.test.js +282 -282
- package/docs/03-PATTERN-GUIDES/examples/test-data/03-pattern-guides-readme.md +110 -110
- package/docs/03-PATTERN-GUIDES/examples/test-data/canonical-inventory.json +123 -123
- package/docs/03-PATTERN-GUIDES/examples/test-data/canonical-order.json +171 -171
- package/docs/03-PATTERN-GUIDES/examples/test-data/readme.md +28 -28
- package/docs/03-PATTERN-GUIDES/extraction/extraction-readme.md +15 -15
- package/docs/03-PATTERN-GUIDES/extraction/readme.md +25 -25
- package/docs/03-PATTERN-GUIDES/file-operations/examples/common-patterns.ts +407 -407
- package/docs/03-PATTERN-GUIDES/file-operations/examples/file-operations-readme.md +142 -142
- package/docs/03-PATTERN-GUIDES/file-operations/file-operations-quick-reference.md +462 -462
- package/docs/03-PATTERN-GUIDES/file-operations/file-operations-readme.md +379 -379
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-01-foundations.md +430 -430
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-02-quick-start.md +484 -484
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-03-s3-operations.md +507 -507
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-04-sftp-operations.md +963 -963
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-05-streaming-performance.md +503 -503
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-06-archive-patterns.md +386 -386
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-06-error-handling.md +117 -117
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-07-api-reference.md +78 -78
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-07-testing-troubleshooting.md +567 -567
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-08-api-reference.md +1055 -1055
- package/docs/03-PATTERN-GUIDES/file-operations/readme.md +32 -32
- package/docs/03-PATTERN-GUIDES/ingestion/ingestion-readme.md +15 -15
- package/docs/03-PATTERN-GUIDES/ingestion/readme.md +25 -25
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/batch-processing.ts +130 -130
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/common-patterns.ts +360 -360
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/delta-sync.ts +130 -130
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/integration-patterns-readme.md +100 -100
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/real-time-webhook.ts +398 -398
- package/docs/03-PATTERN-GUIDES/integration-patterns/integration-patterns-quick-reference.md +962 -962
- package/docs/03-PATTERN-GUIDES/integration-patterns/integration-patterns-readme.md +134 -134
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-01-real-time-processing.md +991 -991
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-02-batch-processing.md +1547 -1547
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-03-delta-sync.md +1108 -1108
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-04-webhook-patterns.md +1181 -1181
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-05-error-handling.md +1061 -1061
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-06-advanced-integration-services.md +1547 -1547
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-06-performance.md +109 -109
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-07-api-reference.md +34 -34
- package/docs/03-PATTERN-GUIDES/integration-patterns/readme.md +30 -30
- package/docs/03-PATTERN-GUIDES/logging-minimal-mode.md +128 -128
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/common-patterns.ts +380 -380
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/multiple-connections-readme.md +139 -139
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/parallel-root-connections.ts +149 -149
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/real-world-scenarios.ts +405 -405
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-01-foundations.md +378 -378
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-02-quick-start.md +566 -566
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-03-targeting-connections.md +659 -659
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-04-parallel-queries.md +656 -656
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-05-best-practices.md +624 -624
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-06-api-reference.md +824 -824
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-06-versori.md +119 -119
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-07-api-reference.md +87 -87
- package/docs/03-PATTERN-GUIDES/multiple-connections/multiple-connections-quick-reference.md +353 -353
- package/docs/03-PATTERN-GUIDES/multiple-connections/multiple-connections-readme.md +270 -270
- package/docs/03-PATTERN-GUIDES/multiple-connections/readme.md +30 -30
- package/docs/03-PATTERN-GUIDES/pagination/pagination-readme.md +14 -14
- package/docs/03-PATTERN-GUIDES/pagination/readme.md +24 -24
- package/docs/03-PATTERN-GUIDES/parquet/examples/common-patterns.ts +180 -180
- package/docs/03-PATTERN-GUIDES/parquet/examples/read-parquet.ts +48 -48
- package/docs/03-PATTERN-GUIDES/parquet/examples/write-parquet.ts +65 -65
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-01-introduction.md +393 -393
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-02-quick-start.md +572 -572
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-03-reading-parquet.md +525 -525
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-04-writing-parquet.md +554 -554
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-05-graphql-extraction.md +405 -405
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-06-performance.md +104 -104
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-06-s3-integration.md +511 -511
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-07-api-reference.md +90 -90
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-07-performance-optimization.md +525 -525
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-08-best-practices.md +712 -712
- package/docs/03-PATTERN-GUIDES/parquet/parquet-quick-reference.md +683 -683
- package/docs/03-PATTERN-GUIDES/parquet/parquet-readme.md +248 -248
- package/docs/03-PATTERN-GUIDES/parquet/readme.md +32 -32
- package/docs/03-PATTERN-GUIDES/parsers/parsers-readme.md +12 -12
- package/docs/03-PATTERN-GUIDES/parsers/readme.md +24 -24
- package/docs/03-PATTERN-GUIDES/readme.md +159 -159
- package/docs/03-PATTERN-GUIDES/webhooks/readme.md +24 -24
- package/docs/03-PATTERN-GUIDES/webhooks/webhooks-readme.md +8 -8
- package/docs/04-REFERENCE/architecture/architecture-01-overview.md +427 -427
- package/docs/04-REFERENCE/architecture/architecture-02-client-architecture.md +424 -424
- package/docs/04-REFERENCE/architecture/architecture-03-data-flow.md +690 -690
- package/docs/04-REFERENCE/architecture/architecture-04-service-layer.md +834 -834
- package/docs/04-REFERENCE/architecture/architecture-05-integration-architecture.md +655 -655
- package/docs/04-REFERENCE/architecture/architecture-06-state-management.md +653 -653
- package/docs/04-REFERENCE/architecture/architecture-adding-new-data-sources.md +686 -686
- package/docs/04-REFERENCE/architecture/readme.md +279 -279
- package/docs/04-REFERENCE/platforms/deno/readme.md +117 -117
- package/docs/04-REFERENCE/platforms/nodejs/readme.md +146 -146
- package/docs/04-REFERENCE/platforms/readme.md +135 -135
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-01-introduction.md +398 -398
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-02-quick-start.md +560 -560
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-03-authentication.md +757 -757
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-04-workflows.md +2476 -2476
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-05-connections.md +1167 -1167
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-06-kv-storage.md +990 -990
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-06-state-management.md +121 -121
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-07-api-reference.md +68 -68
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-07-deployment.md +731 -731
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-08-best-practices.md +1111 -1111
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-09-signature-reference.md +766 -766
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-readme.md +299 -299
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-s3-sftp-configuration-guide.md +1425 -1425
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-webhook-api-key-security.md +816 -816
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-webhook-connection-security.md +681 -681
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-workflow-task-types.md +708 -708
- package/docs/04-REFERENCE/platforms/versori/readme.md +108 -108
- package/docs/04-REFERENCE/readme.md +148 -148
- package/docs/04-REFERENCE/resolver-signature/examples/advanced-resolvers.ts +482 -482
- package/docs/04-REFERENCE/resolver-signature/examples/async-resolvers.ts +496 -496
- package/docs/04-REFERENCE/resolver-signature/examples/basic-resolvers.ts +343 -343
- package/docs/04-REFERENCE/resolver-signature/examples/resolver-signature-readme.md +188 -188
- package/docs/04-REFERENCE/resolver-signature/examples/testing-resolvers.ts +463 -463
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-01-foundations.md +286 -286
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-02-parameter-reference.md +643 -643
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-03-basic-examples.md +521 -521
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-04-advanced-patterns.md +739 -739
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-05-sdk-resolvers.md +531 -531
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-06-migration-guide.md +650 -650
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-06-testing.md +125 -125
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-07-api-reference.md +794 -794
- package/docs/04-REFERENCE/resolver-signature/readme.md +64 -64
- package/docs/04-REFERENCE/resolver-signature/resolver-signature-quick-reference.md +270 -270
- package/docs/04-REFERENCE/resolver-signature/resolver-signature-readme.md +351 -351
- package/docs/04-REFERENCE/schema/fluent-commerce-schema.json +764 -764
- package/docs/04-REFERENCE/schema/readme.md +141 -141
- package/docs/04-REFERENCE/testing/examples/04-reference-testing-readme.md +158 -158
- package/docs/04-REFERENCE/testing/examples/fluent-testing.ts +62 -62
- package/docs/04-REFERENCE/testing/examples/health-check.ts +155 -155
- package/docs/04-REFERENCE/testing/examples/integration-test.ts +119 -119
- package/docs/04-REFERENCE/testing/examples/performance-test.ts +183 -183
- package/docs/04-REFERENCE/testing/examples/s3-testing.ts +127 -127
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-01-foundations.md +267 -267
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-02-s3-testing.md +599 -599
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-03-fluent-testing.md +589 -589
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-04-integration-testing.md +699 -699
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-05-debugging.md +478 -478
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-06-cicd-integration.md +463 -463
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-06-preflight-validation.md +131 -131
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-07-best-practices.md +499 -499
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-07-coverage-ci.md +165 -165
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-08-api-reference.md +634 -634
- package/docs/04-REFERENCE/testing/readme.md +86 -86
- package/docs/04-REFERENCE/testing/testing-quick-reference.md +667 -667
- package/docs/04-REFERENCE/testing/testing-readme.md +286 -286
- package/docs/04-REFERENCE/troubleshooting/readme.md +144 -144
- package/docs/04-REFERENCE/troubleshooting/troubleshooting-deno-sftp-compatibility.md +392 -392
- package/docs/template-loading-matrix.md +242 -242
- package/package.json +5 -3
- package/docs/02-CORE-GUIDES/api-reference/cli-profile-integration.md +0 -377
|
@@ -1,462 +1,462 @@
|
|
|
1
|
-
# Module 7: Complete API Reference
|
|
2
|
-
|
|
3
|
-
> **Learning Objective:** Complete technical reference for all auto-pagination interfaces, types, and behaviors.
|
|
4
|
-
>
|
|
5
|
-
> **Level:** Reference
|
|
6
|
-
|
|
7
|
-
## PaginationConfig Interface
|
|
8
|
-
|
|
9
|
-
Complete configuration interface for auto-pagination control.
|
|
10
|
-
|
|
11
|
-
```typescript
|
|
12
|
-
interface PaginationConfig {
|
|
13
|
-
/**
|
|
14
|
-
* Enable or disable auto-pagination
|
|
15
|
-
* @default auto-detected based on query variables
|
|
16
|
-
*/
|
|
17
|
-
enabled?: boolean;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Maximum number of pages to fetch before stopping
|
|
21
|
-
* @default 100
|
|
22
|
-
*/
|
|
23
|
-
maxPages?: number;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Maximum total records to fetch before stopping
|
|
27
|
-
* @default 10,000
|
|
28
|
-
*/
|
|
29
|
-
maxRecords?: number;
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Overall timeout in milliseconds before stopping
|
|
33
|
-
* @default 300,000 (5 minutes)
|
|
34
|
-
*/
|
|
35
|
-
timeoutMs?: number;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Delay between page fetches in milliseconds
|
|
39
|
-
* @default 0 (no delay)
|
|
40
|
-
*/
|
|
41
|
-
delayMs?: number;
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Pagination direction
|
|
45
|
-
* @default auto-detected from query variables
|
|
46
|
-
*/
|
|
47
|
-
direction?: 'forward' | 'backward';
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Path to connection in response (e.g., "order.items")
|
|
51
|
-
* Use dot notation for nested connections
|
|
52
|
-
* @default auto-detected (first connection found)
|
|
53
|
-
*/
|
|
54
|
-
connectionPath?: string;
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* AbortSignal to cancel pagination programmatically
|
|
58
|
-
* @default undefined
|
|
59
|
-
*/
|
|
60
|
-
abortSignal?: AbortSignal;
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Callback invoked after each page fetch
|
|
64
|
-
* @param page - Current page number (1-indexed)
|
|
65
|
-
* @param totalRecords - Total records fetched so far
|
|
66
|
-
*/
|
|
67
|
-
onProgress?: (page: number, totalRecords: number) => void;
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Callback invoked when approaching limits
|
|
71
|
-
* @param message - Warning message describing the issue
|
|
72
|
-
*/
|
|
73
|
-
onWarning?: (message: string) => void;
|
|
74
|
-
}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## AutoPaginationMetadata Interface
|
|
78
|
-
|
|
79
|
-
Metadata returned in `response.extensions.autoPagination`.
|
|
80
|
-
|
|
81
|
-
```typescript
|
|
82
|
-
interface AutoPaginationMetadata {
|
|
83
|
-
/**
|
|
84
|
-
* Total number of pages fetched
|
|
85
|
-
*/
|
|
86
|
-
totalPages: number;
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Total number of records across all pages
|
|
90
|
-
*/
|
|
91
|
-
totalRecords: number;
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Whether pagination was stopped before completion
|
|
95
|
-
*/
|
|
96
|
-
truncated: boolean;
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Reason for truncation (if truncated === true)
|
|
100
|
-
* Possible values: "maxPages" | "maxRecords" | "timeout"
|
|
101
|
-
*/
|
|
102
|
-
truncationReason?: 'maxPages' | 'maxRecords' | 'timeout';
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Pagination direction used
|
|
106
|
-
* Determined from query variables or config
|
|
107
|
-
*/
|
|
108
|
-
direction?: 'forward' | 'backward';
|
|
109
|
-
}
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
**Note:** The SDK tracks pagination duration internally (via `Date.now()` timestamps) but does NOT expose `timeElapsed` or `duration` in the `autoPagination` metadata. Calculate duration yourself using `Date.now()` before and after the call if needed.
|
|
113
|
-
|
|
114
|
-
## GraphQL Query Requirements
|
|
115
|
-
|
|
116
|
-
For auto-pagination to activate, your query must meet these requirements:
|
|
117
|
-
|
|
118
|
-
### Required: Pagination Variables
|
|
119
|
-
|
|
120
|
-
Query must declare pagination-related variables:
|
|
121
|
-
|
|
122
|
-
```typescript
|
|
123
|
-
// ✅ VALID: Forward pagination
|
|
124
|
-
query MyQuery($first: Int!, $after: String) { ... }
|
|
125
|
-
|
|
126
|
-
// ✅ VALID: Backward pagination
|
|
127
|
-
query MyQuery($last: Int!, $before: String) { ... }
|
|
128
|
-
|
|
129
|
-
// ✅ VALID: Custom names (detected automatically)
|
|
130
|
-
query MyQuery($itemsFirst: Int!, $itemsAfter: String) { ... }
|
|
131
|
-
|
|
132
|
-
// ❌ INVALID: No pagination variables
|
|
133
|
-
query MyQuery { ... }
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### Required: Connection Structure
|
|
137
|
-
|
|
138
|
-
Response must follow Relay Connection specification:
|
|
139
|
-
|
|
140
|
-
```typescript
|
|
141
|
-
{
|
|
142
|
-
edges: [
|
|
143
|
-
{
|
|
144
|
-
node: { /* data */ },
|
|
145
|
-
cursor: string
|
|
146
|
-
}
|
|
147
|
-
],
|
|
148
|
-
pageInfo: {
|
|
149
|
-
hasNextPage: boolean // or hasPreviousPage for backward
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
### Required: pageInfo Field
|
|
155
|
-
|
|
156
|
-
Must include `hasNextPage` (forward) or `hasPreviousPage` (backward).
|
|
157
|
-
|
|
158
|
-
**IMPORTANT:** Fluent Commerce uses **edge-based cursors only**. Unlike the full Relay spec:
|
|
159
|
-
- ❌ `pageInfo.startCursor` - Not used (Fluent doesn't return this)
|
|
160
|
-
- ❌ `pageInfo.endCursor` - Not used (Fluent doesn't return this)
|
|
161
|
-
- ✅ `edges[].cursor` - **Required** - SDK extracts cursors from edges
|
|
162
|
-
|
|
163
|
-
```graphql
|
|
164
|
-
# ✅ CORRECT for Fluent
|
|
165
|
-
edges {
|
|
166
|
-
node { /* data */ }
|
|
167
|
-
cursor # ← Cursor is in edge, not pageInfo!
|
|
168
|
-
}
|
|
169
|
-
pageInfo {
|
|
170
|
-
hasNextPage
|
|
171
|
-
}
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
### Cursor Selection Logic
|
|
175
|
-
|
|
176
|
-
The SDK automatically selects the correct cursor from edges based on pagination direction:
|
|
177
|
-
|
|
178
|
-
**Forward Pagination (after):**
|
|
179
|
-
- Uses the **last edge's cursor** from the current page
|
|
180
|
-
- Rationale: Next page starts after the last item
|
|
181
|
-
|
|
182
|
-
```typescript
|
|
183
|
-
// Forward pagination example
|
|
184
|
-
edges = [
|
|
185
|
-
{ cursor: 'abc', node: { id: 1 } },
|
|
186
|
-
{ cursor: 'def', node: { id: 2 } },
|
|
187
|
-
{ cursor: 'ghi', node: { id: 3 } }
|
|
188
|
-
];
|
|
189
|
-
// Selected cursor for next page: 'ghi' (last edge)
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
**Backward Pagination (before):**
|
|
193
|
-
- Uses the **first edge's cursor** from the current page
|
|
194
|
-
- Rationale: Previous page ends before the first item
|
|
195
|
-
|
|
196
|
-
```typescript
|
|
197
|
-
// Backward pagination example
|
|
198
|
-
edges = [
|
|
199
|
-
{ cursor: 'abc', node: { id: 1 } },
|
|
200
|
-
{ cursor: 'def', node: { id: 2 } },
|
|
201
|
-
{ cursor: 'ghi', node: { id: 3 } }
|
|
202
|
-
];
|
|
203
|
-
// Selected cursor for next page: 'abc' (first edge)
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
**Implementation:**
|
|
207
|
-
```typescript
|
|
208
|
-
// Forward direction
|
|
209
|
-
const cursor = edges[edges.length - 1].cursor; // Last edge
|
|
210
|
-
|
|
211
|
-
// Backward direction
|
|
212
|
-
const cursor = edges[0].cursor; // First edge
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
## Variable Name Detection Patterns
|
|
216
|
-
|
|
217
|
-
SDK automatically detects these variable name patterns:
|
|
218
|
-
|
|
219
|
-
| Pattern | Example | Direction | Detected As |
|
|
220
|
-
| ---------- | ---------------------- | --------- | ----------- |
|
|
221
|
-
| `$first` | `$first: Int!` | Forward | Page size |
|
|
222
|
-
| `$after` | `$after: String` | Forward | Cursor |
|
|
223
|
-
| `$*First` | `$itemsFirst: Int!` | Forward | Page size |
|
|
224
|
-
| `$*After` | `$itemsAfter: String` | Forward | Cursor |
|
|
225
|
-
| `$last` | `$last: Int!` | Backward | Page size |
|
|
226
|
-
| `$before` | `$before: String` | Backward | Cursor |
|
|
227
|
-
| `$*Last` | `$itemsLast: Int!` | Backward | Page size |
|
|
228
|
-
| `$*Before` | `$itemsBefore: String` | Backward | Cursor |
|
|
229
|
-
|
|
230
|
-
**Case Sensitivity:** Detection is case-insensitive for patterns (e.g., `$First`, `$FIRST` all match).
|
|
231
|
-
|
|
232
|
-
## Safety Limit Behavior (OR-Logic)
|
|
233
|
-
|
|
234
|
-
Pagination stops when **ANY** limit is reached first:
|
|
235
|
-
|
|
236
|
-
```typescript
|
|
237
|
-
pagination: {
|
|
238
|
-
maxPages: 50, // Limit A
|
|
239
|
-
maxRecords: 5000, // Limit B
|
|
240
|
-
timeoutMs: 60000 // Limit C
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
// Stops when: A OR B OR C is reached
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
### Limit Evaluation Order
|
|
247
|
-
|
|
248
|
-
1. **Timeout** - Checked before each page fetch
|
|
249
|
-
2. **Max Pages** - Checked after each page fetch
|
|
250
|
-
3. **Max Records** - Checked after each page fetch
|
|
251
|
-
|
|
252
|
-
### Truncation Reason Priority
|
|
253
|
-
|
|
254
|
-
If multiple limits are reached simultaneously, priority is:
|
|
255
|
-
|
|
256
|
-
1. `timeout` (highest priority)
|
|
257
|
-
2. `maxPages`
|
|
258
|
-
3. `maxRecords` (lowest priority)
|
|
259
|
-
|
|
260
|
-
## Deduplication Behavior
|
|
261
|
-
|
|
262
|
-
SDK automatically deduplicates edges using a two-tier strategy:
|
|
263
|
-
|
|
264
|
-
```typescript
|
|
265
|
-
// Page 1: Returns edges with node.id [1, 2, 3] and cursors ['a', 'b', 'c']
|
|
266
|
-
// Page 2: Returns edges with node.id [3, 4, 5] and cursors ['c', 'd', 'e']
|
|
267
|
-
// ID 3 is duplicate (same node.id and cursor 'c')
|
|
268
|
-
|
|
269
|
-
// Final result: [1, 2, 3, 4, 5] // ID 3 appears only once
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
**Deduplication Strategy:**
|
|
273
|
-
1. **Primary:** Deduplicates by `edge.node.id` (if present)
|
|
274
|
-
2. **Fallback:** Deduplicates by `edge.cursor` (if node.id not present)
|
|
275
|
-
3. **None:** If neither exists, edge is included (not deduplicated)
|
|
276
|
-
|
|
277
|
-
This ensures robust deduplication across paginated responses.
|
|
278
|
-
|
|
279
|
-
## Infinite Loop Protection
|
|
280
|
-
|
|
281
|
-
SDK includes safeguards against infinite pagination loops:
|
|
282
|
-
|
|
283
|
-
### 1. Stuck Cursor Detection
|
|
284
|
-
|
|
285
|
-
```typescript
|
|
286
|
-
// If same cursor returned twice consecutively, pagination stops
|
|
287
|
-
// Example:
|
|
288
|
-
// Page 1: lastCursor = "abc123"
|
|
289
|
-
// Page 2: lastCursor = "abc123" ← Same cursor!
|
|
290
|
-
// → Pagination stops automatically
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
### 2. Empty Page Detection
|
|
294
|
-
|
|
295
|
-
```typescript
|
|
296
|
-
// If 3 consecutive empty pages (edges.length === 0), pagination stops
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
### 3. hasNextPage Respect
|
|
300
|
-
|
|
301
|
-
```typescript
|
|
302
|
-
// If pageInfo.hasNextPage === false, pagination stops
|
|
303
|
-
// Even if other limits not reached
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
## Error Handling
|
|
307
|
-
|
|
308
|
-
### Fail-Fast Behavior
|
|
309
|
-
|
|
310
|
-
Auto-pagination **fails fast** on GraphQL errors - no partial data returned:
|
|
311
|
-
|
|
312
|
-
```typescript
|
|
313
|
-
try {
|
|
314
|
-
const result = await client.graphql({
|
|
315
|
-
query: invalidQuery,
|
|
316
|
-
variables: { first: 100 },
|
|
317
|
-
});
|
|
318
|
-
} catch (error) {
|
|
319
|
-
// GraphQL error throws immediately
|
|
320
|
-
// No partial pages returned
|
|
321
|
-
console.error('Pagination failed:', error.message);
|
|
322
|
-
}
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
### Network Retry Behavior
|
|
326
|
-
|
|
327
|
-
SDK retries 5xx errors automatically (exponential backoff):
|
|
328
|
-
|
|
329
|
-
- 500 Internal Server Error: Retries up to 3 times
|
|
330
|
-
- 502 Bad Gateway: Retries up to 3 times
|
|
331
|
-
- 503 Service Unavailable: Retries up to 3 times
|
|
332
|
-
- 504 Gateway Timeout: Retries up to 3 times
|
|
333
|
-
|
|
334
|
-
4xx errors **do NOT** retry:
|
|
335
|
-
|
|
336
|
-
- 400 Bad Request: Immediate failure
|
|
337
|
-
- 401 Unauthorized: Immediate failure
|
|
338
|
-
- 403 Forbidden: Immediate failure
|
|
339
|
-
- 404 Not Found: Immediate failure
|
|
340
|
-
- 429 Too Many Requests: Immediate failure
|
|
341
|
-
|
|
342
|
-
## Mutation Detection
|
|
343
|
-
|
|
344
|
-
Auto-pagination is **always disabled** for mutations:
|
|
345
|
-
|
|
346
|
-
```typescript
|
|
347
|
-
// ❌ Auto-pagination DISABLED (mutation detected)
|
|
348
|
-
mutation CreateOrder($first: Int!, $after: String) {
|
|
349
|
-
createOrder(input: $input) {
|
|
350
|
-
order {
|
|
351
|
-
items(first: $first, after: $after) {
|
|
352
|
-
edges { ... }
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
// Even with pagination variables, mutations never auto-paginate
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
## Default Values
|
|
362
|
-
|
|
363
|
-
| Config Option | Default Value | Notes |
|
|
364
|
-
| ---------------- | ------------------------------ | -------------------------- |
|
|
365
|
-
| `enabled` | `true` (if variables detected) | Auto-detected |
|
|
366
|
-
| `maxPages` | `100` | Conservative default |
|
|
367
|
-
| `maxRecords` | `10,000` | Conservative default |
|
|
368
|
-
| `timeoutMs` | `300,000` (5 minutes) | Overall timeout |
|
|
369
|
-
| `delayMs` | `0` (no delay) | For rate limiting |
|
|
370
|
-
| `direction` | Auto-detected | From query variables |
|
|
371
|
-
| `connectionPath` | Auto-detected | First connection found |
|
|
372
|
-
| `abortSignal` | `undefined` | No cancellation by default |
|
|
373
|
-
| `onProgress` | `undefined` | No callback |
|
|
374
|
-
| `onWarning` | `undefined` | No callback |
|
|
375
|
-
|
|
376
|
-
## Type Exports
|
|
377
|
-
|
|
378
|
-
All types are exported from the main SDK package:
|
|
379
|
-
|
|
380
|
-
```typescript
|
|
381
|
-
import type {
|
|
382
|
-
PaginationConfig,
|
|
383
|
-
AutoPaginationMetadata,
|
|
384
|
-
GraphQLResponse,
|
|
385
|
-
GraphQLPayload,
|
|
386
|
-
} from '@fluentcommerce/fc-connect-sdk';
|
|
387
|
-
```
|
|
388
|
-
|
|
389
|
-
## Versori Platform Differences
|
|
390
|
-
|
|
391
|
-
When running on Versori platform:
|
|
392
|
-
|
|
393
|
-
| Aspect | Node.js/Deno | Versori Platform |
|
|
394
|
-
| ------------------ | -------------------------------- | ------------------------------------------------ |
|
|
395
|
-
| Client Creation | `await createClient({ config })` | `await createClient(ctx)` |
|
|
396
|
-
| Authentication | OAuth2 client credentials | Connection-based (automatic) |
|
|
397
|
-
| Timeout Defaults | 5 minutes | Same (5 minutes) |
|
|
398
|
-
| Progress Callbacks | Console output | Versori logs |
|
|
399
|
-
| Context Detection | Manual | Automatic |
|
|
400
|
-
|
|
401
|
-
**Note:** Auto-pagination behavior is identical across all platforms.
|
|
402
|
-
|
|
403
|
-
## Response Structure
|
|
404
|
-
|
|
405
|
-
Complete structure of paginated response:
|
|
406
|
-
|
|
407
|
-
```typescript
|
|
408
|
-
interface GraphQLResponse<T = any> {
|
|
409
|
-
data: T; // Merged data from all pages
|
|
410
|
-
errors?: Array<{
|
|
411
|
-
message: string;
|
|
412
|
-
locations?: Array<{ line: number; column: number }>;
|
|
413
|
-
path?: string[];
|
|
414
|
-
extensions?: Record<string, unknown>;
|
|
415
|
-
}>;
|
|
416
|
-
extensions?: {
|
|
417
|
-
autoPagination?: AutoPaginationMetadata;
|
|
418
|
-
[key: string]: unknown;
|
|
419
|
-
};
|
|
420
|
-
}
|
|
421
|
-
```
|
|
422
|
-
|
|
423
|
-
## Limitations
|
|
424
|
-
|
|
425
|
-
Current limitations of auto-pagination:
|
|
426
|
-
|
|
427
|
-
1. **One Connection Per Query**: Can only paginate one connection at a time
|
|
428
|
-
- Solution: Use `connectionPath` to specify which connection
|
|
429
|
-
- Or: Run separate queries for each connection
|
|
430
|
-
|
|
431
|
-
2. **No Streaming**: All pages fetched into memory before returning
|
|
432
|
-
- Solution: Use manual pagination for streaming use cases
|
|
433
|
-
|
|
434
|
-
3. **No Resume from Failure**: If pagination fails mid-way, must restart
|
|
435
|
-
- Solution: Use manual pagination with checkpoint persistence
|
|
436
|
-
|
|
437
|
-
4. **Mutations Not Supported**: Auto-pagination disabled for all mutations
|
|
438
|
-
- Solution: Not applicable (mutations shouldn't paginate)
|
|
439
|
-
|
|
440
|
-
## Source Code Reference
|
|
441
|
-
|
|
442
|
-
Implementation files in SDK repository:
|
|
443
|
-
|
|
444
|
-
- **Core Logic**: `src/clients/fluent-client.ts` (lines 400-600)
|
|
445
|
-
- **Detection Helpers**: `src/utils/pagination-helpers.ts`
|
|
446
|
-
- **Type Definitions**: `src/types/index.ts` (lines 360-420)
|
|
447
|
-
- **Integration Tests**: `tests/integration/auto-pagination.integration.test.ts`
|
|
448
|
-
- **Unit Tests**: `tests/unit/fluent-client-pagination.test.ts`
|
|
449
|
-
|
|
450
|
-
---
|
|
451
|
-
|
|
452
|
-
## Summary
|
|
453
|
-
|
|
454
|
-
This module provides the complete technical reference for auto-pagination. For practical usage:
|
|
455
|
-
|
|
456
|
-
- **Getting Started**: [Module 2: Quick Start](./auto-pagination-02-quick-start.md)
|
|
457
|
-
- **Configuration**: [Module 3: Configuration](./auto-pagination-03-configuration.md)
|
|
458
|
-
- **Troubleshooting**: [Module 6: Troubleshooting](./auto-pagination-06-troubleshooting.md)
|
|
459
|
-
|
|
460
|
-
---
|
|
461
|
-
|
|
462
|
-
[← Back to Index](../auto-pagination-readme.md) | [← Previous: Troubleshooting](./auto-pagination-06-troubleshooting.md)
|
|
1
|
+
# Module 7: Complete API Reference
|
|
2
|
+
|
|
3
|
+
> **Learning Objective:** Complete technical reference for all auto-pagination interfaces, types, and behaviors.
|
|
4
|
+
>
|
|
5
|
+
> **Level:** Reference
|
|
6
|
+
|
|
7
|
+
## PaginationConfig Interface
|
|
8
|
+
|
|
9
|
+
Complete configuration interface for auto-pagination control.
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
interface PaginationConfig {
|
|
13
|
+
/**
|
|
14
|
+
* Enable or disable auto-pagination
|
|
15
|
+
* @default auto-detected based on query variables
|
|
16
|
+
*/
|
|
17
|
+
enabled?: boolean;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Maximum number of pages to fetch before stopping
|
|
21
|
+
* @default 100
|
|
22
|
+
*/
|
|
23
|
+
maxPages?: number;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Maximum total records to fetch before stopping
|
|
27
|
+
* @default 10,000
|
|
28
|
+
*/
|
|
29
|
+
maxRecords?: number;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Overall timeout in milliseconds before stopping
|
|
33
|
+
* @default 300,000 (5 minutes)
|
|
34
|
+
*/
|
|
35
|
+
timeoutMs?: number;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Delay between page fetches in milliseconds
|
|
39
|
+
* @default 0 (no delay)
|
|
40
|
+
*/
|
|
41
|
+
delayMs?: number;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Pagination direction
|
|
45
|
+
* @default auto-detected from query variables
|
|
46
|
+
*/
|
|
47
|
+
direction?: 'forward' | 'backward';
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Path to connection in response (e.g., "order.items")
|
|
51
|
+
* Use dot notation for nested connections
|
|
52
|
+
* @default auto-detected (first connection found)
|
|
53
|
+
*/
|
|
54
|
+
connectionPath?: string;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* AbortSignal to cancel pagination programmatically
|
|
58
|
+
* @default undefined
|
|
59
|
+
*/
|
|
60
|
+
abortSignal?: AbortSignal;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Callback invoked after each page fetch
|
|
64
|
+
* @param page - Current page number (1-indexed)
|
|
65
|
+
* @param totalRecords - Total records fetched so far
|
|
66
|
+
*/
|
|
67
|
+
onProgress?: (page: number, totalRecords: number) => void;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Callback invoked when approaching limits
|
|
71
|
+
* @param message - Warning message describing the issue
|
|
72
|
+
*/
|
|
73
|
+
onWarning?: (message: string) => void;
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## AutoPaginationMetadata Interface
|
|
78
|
+
|
|
79
|
+
Metadata returned in `response.extensions.autoPagination`.
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
interface AutoPaginationMetadata {
|
|
83
|
+
/**
|
|
84
|
+
* Total number of pages fetched
|
|
85
|
+
*/
|
|
86
|
+
totalPages: number;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Total number of records across all pages
|
|
90
|
+
*/
|
|
91
|
+
totalRecords: number;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Whether pagination was stopped before completion
|
|
95
|
+
*/
|
|
96
|
+
truncated: boolean;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Reason for truncation (if truncated === true)
|
|
100
|
+
* Possible values: "maxPages" | "maxRecords" | "timeout"
|
|
101
|
+
*/
|
|
102
|
+
truncationReason?: 'maxPages' | 'maxRecords' | 'timeout';
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Pagination direction used
|
|
106
|
+
* Determined from query variables or config
|
|
107
|
+
*/
|
|
108
|
+
direction?: 'forward' | 'backward';
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**Note:** The SDK tracks pagination duration internally (via `Date.now()` timestamps) but does NOT expose `timeElapsed` or `duration` in the `autoPagination` metadata. Calculate duration yourself using `Date.now()` before and after the call if needed.
|
|
113
|
+
|
|
114
|
+
## GraphQL Query Requirements
|
|
115
|
+
|
|
116
|
+
For auto-pagination to activate, your query must meet these requirements:
|
|
117
|
+
|
|
118
|
+
### Required: Pagination Variables
|
|
119
|
+
|
|
120
|
+
Query must declare pagination-related variables:
|
|
121
|
+
|
|
122
|
+
```typescript
|
|
123
|
+
// ✅ VALID: Forward pagination
|
|
124
|
+
query MyQuery($first: Int!, $after: String) { ... }
|
|
125
|
+
|
|
126
|
+
// ✅ VALID: Backward pagination
|
|
127
|
+
query MyQuery($last: Int!, $before: String) { ... }
|
|
128
|
+
|
|
129
|
+
// ✅ VALID: Custom names (detected automatically)
|
|
130
|
+
query MyQuery($itemsFirst: Int!, $itemsAfter: String) { ... }
|
|
131
|
+
|
|
132
|
+
// ❌ INVALID: No pagination variables
|
|
133
|
+
query MyQuery { ... }
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Required: Connection Structure
|
|
137
|
+
|
|
138
|
+
Response must follow Relay Connection specification:
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
{
|
|
142
|
+
edges: [
|
|
143
|
+
{
|
|
144
|
+
node: { /* data */ },
|
|
145
|
+
cursor: string
|
|
146
|
+
}
|
|
147
|
+
],
|
|
148
|
+
pageInfo: {
|
|
149
|
+
hasNextPage: boolean // or hasPreviousPage for backward
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Required: pageInfo Field
|
|
155
|
+
|
|
156
|
+
Must include `hasNextPage` (forward) or `hasPreviousPage` (backward).
|
|
157
|
+
|
|
158
|
+
**IMPORTANT:** Fluent Commerce uses **edge-based cursors only**. Unlike the full Relay spec:
|
|
159
|
+
- ❌ `pageInfo.startCursor` - Not used (Fluent doesn't return this)
|
|
160
|
+
- ❌ `pageInfo.endCursor` - Not used (Fluent doesn't return this)
|
|
161
|
+
- ✅ `edges[].cursor` - **Required** - SDK extracts cursors from edges
|
|
162
|
+
|
|
163
|
+
```graphql
|
|
164
|
+
# ✅ CORRECT for Fluent
|
|
165
|
+
edges {
|
|
166
|
+
node { /* data */ }
|
|
167
|
+
cursor # ← Cursor is in edge, not pageInfo!
|
|
168
|
+
}
|
|
169
|
+
pageInfo {
|
|
170
|
+
hasNextPage
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Cursor Selection Logic
|
|
175
|
+
|
|
176
|
+
The SDK automatically selects the correct cursor from edges based on pagination direction:
|
|
177
|
+
|
|
178
|
+
**Forward Pagination (after):**
|
|
179
|
+
- Uses the **last edge's cursor** from the current page
|
|
180
|
+
- Rationale: Next page starts after the last item
|
|
181
|
+
|
|
182
|
+
```typescript
|
|
183
|
+
// Forward pagination example
|
|
184
|
+
edges = [
|
|
185
|
+
{ cursor: 'abc', node: { id: 1 } },
|
|
186
|
+
{ cursor: 'def', node: { id: 2 } },
|
|
187
|
+
{ cursor: 'ghi', node: { id: 3 } }
|
|
188
|
+
];
|
|
189
|
+
// Selected cursor for next page: 'ghi' (last edge)
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
**Backward Pagination (before):**
|
|
193
|
+
- Uses the **first edge's cursor** from the current page
|
|
194
|
+
- Rationale: Previous page ends before the first item
|
|
195
|
+
|
|
196
|
+
```typescript
|
|
197
|
+
// Backward pagination example
|
|
198
|
+
edges = [
|
|
199
|
+
{ cursor: 'abc', node: { id: 1 } },
|
|
200
|
+
{ cursor: 'def', node: { id: 2 } },
|
|
201
|
+
{ cursor: 'ghi', node: { id: 3 } }
|
|
202
|
+
];
|
|
203
|
+
// Selected cursor for next page: 'abc' (first edge)
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Implementation:**
|
|
207
|
+
```typescript
|
|
208
|
+
// Forward direction
|
|
209
|
+
const cursor = edges[edges.length - 1].cursor; // Last edge
|
|
210
|
+
|
|
211
|
+
// Backward direction
|
|
212
|
+
const cursor = edges[0].cursor; // First edge
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Variable Name Detection Patterns
|
|
216
|
+
|
|
217
|
+
SDK automatically detects these variable name patterns:
|
|
218
|
+
|
|
219
|
+
| Pattern | Example | Direction | Detected As |
|
|
220
|
+
| ---------- | ---------------------- | --------- | ----------- |
|
|
221
|
+
| `$first` | `$first: Int!` | Forward | Page size |
|
|
222
|
+
| `$after` | `$after: String` | Forward | Cursor |
|
|
223
|
+
| `$*First` | `$itemsFirst: Int!` | Forward | Page size |
|
|
224
|
+
| `$*After` | `$itemsAfter: String` | Forward | Cursor |
|
|
225
|
+
| `$last` | `$last: Int!` | Backward | Page size |
|
|
226
|
+
| `$before` | `$before: String` | Backward | Cursor |
|
|
227
|
+
| `$*Last` | `$itemsLast: Int!` | Backward | Page size |
|
|
228
|
+
| `$*Before` | `$itemsBefore: String` | Backward | Cursor |
|
|
229
|
+
|
|
230
|
+
**Case Sensitivity:** Detection is case-insensitive for patterns (e.g., `$First`, `$FIRST` all match).
|
|
231
|
+
|
|
232
|
+
## Safety Limit Behavior (OR-Logic)
|
|
233
|
+
|
|
234
|
+
Pagination stops when **ANY** limit is reached first:
|
|
235
|
+
|
|
236
|
+
```typescript
|
|
237
|
+
pagination: {
|
|
238
|
+
maxPages: 50, // Limit A
|
|
239
|
+
maxRecords: 5000, // Limit B
|
|
240
|
+
timeoutMs: 60000 // Limit C
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
// Stops when: A OR B OR C is reached
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Limit Evaluation Order
|
|
247
|
+
|
|
248
|
+
1. **Timeout** - Checked before each page fetch
|
|
249
|
+
2. **Max Pages** - Checked after each page fetch
|
|
250
|
+
3. **Max Records** - Checked after each page fetch
|
|
251
|
+
|
|
252
|
+
### Truncation Reason Priority
|
|
253
|
+
|
|
254
|
+
If multiple limits are reached simultaneously, priority is:
|
|
255
|
+
|
|
256
|
+
1. `timeout` (highest priority)
|
|
257
|
+
2. `maxPages`
|
|
258
|
+
3. `maxRecords` (lowest priority)
|
|
259
|
+
|
|
260
|
+
## Deduplication Behavior
|
|
261
|
+
|
|
262
|
+
SDK automatically deduplicates edges using a two-tier strategy:
|
|
263
|
+
|
|
264
|
+
```typescript
|
|
265
|
+
// Page 1: Returns edges with node.id [1, 2, 3] and cursors ['a', 'b', 'c']
|
|
266
|
+
// Page 2: Returns edges with node.id [3, 4, 5] and cursors ['c', 'd', 'e']
|
|
267
|
+
// ID 3 is duplicate (same node.id and cursor 'c')
|
|
268
|
+
|
|
269
|
+
// Final result: [1, 2, 3, 4, 5] // ID 3 appears only once
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**Deduplication Strategy:**
|
|
273
|
+
1. **Primary:** Deduplicates by `edge.node.id` (if present)
|
|
274
|
+
2. **Fallback:** Deduplicates by `edge.cursor` (if node.id not present)
|
|
275
|
+
3. **None:** If neither exists, edge is included (not deduplicated)
|
|
276
|
+
|
|
277
|
+
This ensures robust deduplication across paginated responses.
|
|
278
|
+
|
|
279
|
+
## Infinite Loop Protection
|
|
280
|
+
|
|
281
|
+
SDK includes safeguards against infinite pagination loops:
|
|
282
|
+
|
|
283
|
+
### 1. Stuck Cursor Detection
|
|
284
|
+
|
|
285
|
+
```typescript
|
|
286
|
+
// If same cursor returned twice consecutively, pagination stops
|
|
287
|
+
// Example:
|
|
288
|
+
// Page 1: lastCursor = "abc123"
|
|
289
|
+
// Page 2: lastCursor = "abc123" ← Same cursor!
|
|
290
|
+
// → Pagination stops automatically
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### 2. Empty Page Detection
|
|
294
|
+
|
|
295
|
+
```typescript
|
|
296
|
+
// If 3 consecutive empty pages (edges.length === 0), pagination stops
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### 3. hasNextPage Respect
|
|
300
|
+
|
|
301
|
+
```typescript
|
|
302
|
+
// If pageInfo.hasNextPage === false, pagination stops
|
|
303
|
+
// Even if other limits not reached
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
## Error Handling
|
|
307
|
+
|
|
308
|
+
### Fail-Fast Behavior
|
|
309
|
+
|
|
310
|
+
Auto-pagination **fails fast** on GraphQL errors - no partial data returned:
|
|
311
|
+
|
|
312
|
+
```typescript
|
|
313
|
+
try {
|
|
314
|
+
const result = await client.graphql({
|
|
315
|
+
query: invalidQuery,
|
|
316
|
+
variables: { first: 100 },
|
|
317
|
+
});
|
|
318
|
+
} catch (error) {
|
|
319
|
+
// GraphQL error throws immediately
|
|
320
|
+
// No partial pages returned
|
|
321
|
+
console.error('Pagination failed:', error.message);
|
|
322
|
+
}
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### Network Retry Behavior
|
|
326
|
+
|
|
327
|
+
SDK retries 5xx errors automatically (exponential backoff):
|
|
328
|
+
|
|
329
|
+
- 500 Internal Server Error: Retries up to 3 times
|
|
330
|
+
- 502 Bad Gateway: Retries up to 3 times
|
|
331
|
+
- 503 Service Unavailable: Retries up to 3 times
|
|
332
|
+
- 504 Gateway Timeout: Retries up to 3 times
|
|
333
|
+
|
|
334
|
+
4xx errors **do NOT** retry:
|
|
335
|
+
|
|
336
|
+
- 400 Bad Request: Immediate failure
|
|
337
|
+
- 401 Unauthorized: Immediate failure
|
|
338
|
+
- 403 Forbidden: Immediate failure
|
|
339
|
+
- 404 Not Found: Immediate failure
|
|
340
|
+
- 429 Too Many Requests: Immediate failure
|
|
341
|
+
|
|
342
|
+
## Mutation Detection
|
|
343
|
+
|
|
344
|
+
Auto-pagination is **always disabled** for mutations:
|
|
345
|
+
|
|
346
|
+
```typescript
|
|
347
|
+
// ❌ Auto-pagination DISABLED (mutation detected)
|
|
348
|
+
mutation CreateOrder($first: Int!, $after: String) {
|
|
349
|
+
createOrder(input: $input) {
|
|
350
|
+
order {
|
|
351
|
+
items(first: $first, after: $after) {
|
|
352
|
+
edges { ... }
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
// Even with pagination variables, mutations never auto-paginate
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
## Default Values
|
|
362
|
+
|
|
363
|
+
| Config Option | Default Value | Notes |
|
|
364
|
+
| ---------------- | ------------------------------ | -------------------------- |
|
|
365
|
+
| `enabled` | `true` (if variables detected) | Auto-detected |
|
|
366
|
+
| `maxPages` | `100` | Conservative default |
|
|
367
|
+
| `maxRecords` | `10,000` | Conservative default |
|
|
368
|
+
| `timeoutMs` | `300,000` (5 minutes) | Overall timeout |
|
|
369
|
+
| `delayMs` | `0` (no delay) | For rate limiting |
|
|
370
|
+
| `direction` | Auto-detected | From query variables |
|
|
371
|
+
| `connectionPath` | Auto-detected | First connection found |
|
|
372
|
+
| `abortSignal` | `undefined` | No cancellation by default |
|
|
373
|
+
| `onProgress` | `undefined` | No callback |
|
|
374
|
+
| `onWarning` | `undefined` | No callback |
|
|
375
|
+
|
|
376
|
+
## Type Exports
|
|
377
|
+
|
|
378
|
+
All types are exported from the main SDK package:
|
|
379
|
+
|
|
380
|
+
```typescript
|
|
381
|
+
import type {
|
|
382
|
+
PaginationConfig,
|
|
383
|
+
AutoPaginationMetadata,
|
|
384
|
+
GraphQLResponse,
|
|
385
|
+
GraphQLPayload,
|
|
386
|
+
} from '@fluentcommerce/fc-connect-sdk';
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
## Versori Platform Differences
|
|
390
|
+
|
|
391
|
+
When running on Versori platform:
|
|
392
|
+
|
|
393
|
+
| Aspect | Node.js/Deno | Versori Platform |
|
|
394
|
+
| ------------------ | -------------------------------- | ------------------------------------------------ |
|
|
395
|
+
| Client Creation | `await createClient({ config })` | `await createClient(ctx)` |
|
|
396
|
+
| Authentication | OAuth2 client credentials | Connection-based (automatic) |
|
|
397
|
+
| Timeout Defaults | 5 minutes | Same (5 minutes) |
|
|
398
|
+
| Progress Callbacks | Console output | Versori logs |
|
|
399
|
+
| Context Detection | Manual | Automatic |
|
|
400
|
+
|
|
401
|
+
**Note:** Auto-pagination behavior is identical across all platforms.
|
|
402
|
+
|
|
403
|
+
## Response Structure
|
|
404
|
+
|
|
405
|
+
Complete structure of paginated response:
|
|
406
|
+
|
|
407
|
+
```typescript
|
|
408
|
+
interface GraphQLResponse<T = any> {
|
|
409
|
+
data: T; // Merged data from all pages
|
|
410
|
+
errors?: Array<{
|
|
411
|
+
message: string;
|
|
412
|
+
locations?: Array<{ line: number; column: number }>;
|
|
413
|
+
path?: string[];
|
|
414
|
+
extensions?: Record<string, unknown>;
|
|
415
|
+
}>;
|
|
416
|
+
extensions?: {
|
|
417
|
+
autoPagination?: AutoPaginationMetadata;
|
|
418
|
+
[key: string]: unknown;
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
## Limitations
|
|
424
|
+
|
|
425
|
+
Current limitations of auto-pagination:
|
|
426
|
+
|
|
427
|
+
1. **One Connection Per Query**: Can only paginate one connection at a time
|
|
428
|
+
- Solution: Use `connectionPath` to specify which connection
|
|
429
|
+
- Or: Run separate queries for each connection
|
|
430
|
+
|
|
431
|
+
2. **No Streaming**: All pages fetched into memory before returning
|
|
432
|
+
- Solution: Use manual pagination for streaming use cases
|
|
433
|
+
|
|
434
|
+
3. **No Resume from Failure**: If pagination fails mid-way, must restart
|
|
435
|
+
- Solution: Use manual pagination with checkpoint persistence
|
|
436
|
+
|
|
437
|
+
4. **Mutations Not Supported**: Auto-pagination disabled for all mutations
|
|
438
|
+
- Solution: Not applicable (mutations shouldn't paginate)
|
|
439
|
+
|
|
440
|
+
## Source Code Reference
|
|
441
|
+
|
|
442
|
+
Implementation files in SDK repository:
|
|
443
|
+
|
|
444
|
+
- **Core Logic**: `src/clients/fluent-client.ts` (lines 400-600)
|
|
445
|
+
- **Detection Helpers**: `src/utils/pagination-helpers.ts`
|
|
446
|
+
- **Type Definitions**: `src/types/index.ts` (lines 360-420)
|
|
447
|
+
- **Integration Tests**: `tests/integration/auto-pagination.integration.test.ts`
|
|
448
|
+
- **Unit Tests**: `tests/unit/fluent-client-pagination.test.ts`
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
## Summary
|
|
453
|
+
|
|
454
|
+
This module provides the complete technical reference for auto-pagination. For practical usage:
|
|
455
|
+
|
|
456
|
+
- **Getting Started**: [Module 2: Quick Start](./auto-pagination-02-quick-start.md)
|
|
457
|
+
- **Configuration**: [Module 3: Configuration](./auto-pagination-03-configuration.md)
|
|
458
|
+
- **Troubleshooting**: [Module 6: Troubleshooting](./auto-pagination-06-troubleshooting.md)
|
|
459
|
+
|
|
460
|
+
---
|
|
461
|
+
|
|
462
|
+
[← Back to Index](../auto-pagination-readme.md) | [← Previous: Troubleshooting](./auto-pagination-06-troubleshooting.md)
|