dataceen-client 0.0.1
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/LICENSE +16 -0
- package/README.md +50 -0
- package/dist/client/dataceen-client.d.ts +47 -0
- package/dist/client/dataceen-client.js +122 -0
- package/dist/client/errors.d.ts +16 -0
- package/dist/client/errors.js +26 -0
- package/dist/client/http-transport.d.ts +33 -0
- package/dist/client/http-transport.js +100 -0
- package/dist/client/index.d.ts +5 -0
- package/dist/client/index.js +4 -0
- package/dist/client/token-provider.d.ts +22 -0
- package/dist/client/token-provider.js +31 -0
- package/dist/client/types.d.ts +56 -0
- package/dist/client/types.js +8 -0
- package/dist/config.d.ts +41 -0
- package/dist/config.js +19 -0
- package/dist/generated/AllClient.d.ts +66 -0
- package/dist/generated/AllClient.js +97 -0
- package/dist/generated/Category.d.ts +12 -0
- package/dist/generated/Category.js +5 -0
- package/dist/generated/CategoryClient.d.ts +26 -0
- package/dist/generated/CategoryClient.js +44 -0
- package/dist/generated/CategoryCreate.d.ts +9 -0
- package/dist/generated/CategoryCreate.js +5 -0
- package/dist/generated/CategoryFields.d.ts +10 -0
- package/dist/generated/CategoryFields.js +5 -0
- package/dist/generated/CategoryFilter.d.ts +13 -0
- package/dist/generated/CategoryFilter.js +5 -0
- package/dist/generated/CategoryHasProduct.d.ts +13 -0
- package/dist/generated/CategoryHasProduct.js +5 -0
- package/dist/generated/CategoryHasProductClient.d.ts +26 -0
- package/dist/generated/CategoryHasProductClient.js +44 -0
- package/dist/generated/CategoryHasProductCreate.d.ts +17 -0
- package/dist/generated/CategoryHasProductCreate.js +5 -0
- package/dist/generated/CategoryHasProductFields.d.ts +10 -0
- package/dist/generated/CategoryHasProductFields.js +5 -0
- package/dist/generated/CategoryHasProductFilter.d.ts +13 -0
- package/dist/generated/CategoryHasProductFilter.js +5 -0
- package/dist/generated/CategoryHasProductUpdate.d.ts +25 -0
- package/dist/generated/CategoryHasProductUpdate.js +88 -0
- package/dist/generated/CategoryUpdate.d.ts +31 -0
- package/dist/generated/CategoryUpdate.js +127 -0
- package/dist/generated/Customer.d.ts +19 -0
- package/dist/generated/Customer.js +5 -0
- package/dist/generated/CustomerAddress.d.ts +6 -0
- package/dist/generated/CustomerAddress.js +5 -0
- package/dist/generated/CustomerAddressClient.d.ts +26 -0
- package/dist/generated/CustomerAddressClient.js +44 -0
- package/dist/generated/CustomerAddressCreate.d.ts +6 -0
- package/dist/generated/CustomerAddressCreate.js +5 -0
- package/dist/generated/CustomerAddressFields.d.ts +10 -0
- package/dist/generated/CustomerAddressFields.js +5 -0
- package/dist/generated/CustomerAddressFilter.d.ts +8 -0
- package/dist/generated/CustomerAddressFilter.js +5 -0
- package/dist/generated/CustomerAddressSearchFilter.d.ts +8 -0
- package/dist/generated/CustomerAddressSearchFilter.js +5 -0
- package/dist/generated/CustomerAddressUpdate.d.ts +25 -0
- package/dist/generated/CustomerAddressUpdate.js +88 -0
- package/dist/generated/CustomerAddress_aggregation.d.ts +7 -0
- package/dist/generated/CustomerAddress_aggregation.js +5 -0
- package/dist/generated/CustomerClient.d.ts +30 -0
- package/dist/generated/CustomerClient.js +48 -0
- package/dist/generated/CustomerContact.d.ts +4 -0
- package/dist/generated/CustomerContact.js +5 -0
- package/dist/generated/CustomerContactClient.d.ts +26 -0
- package/dist/generated/CustomerContactClient.js +44 -0
- package/dist/generated/CustomerContactCreate.d.ts +4 -0
- package/dist/generated/CustomerContactCreate.js +5 -0
- package/dist/generated/CustomerContactFields.d.ts +10 -0
- package/dist/generated/CustomerContactFields.js +5 -0
- package/dist/generated/CustomerContactFilter.d.ts +7 -0
- package/dist/generated/CustomerContactFilter.js +5 -0
- package/dist/generated/CustomerContactSearchFilter.d.ts +6 -0
- package/dist/generated/CustomerContactSearchFilter.js +5 -0
- package/dist/generated/CustomerContactUpdate.d.ts +21 -0
- package/dist/generated/CustomerContactUpdate.js +62 -0
- package/dist/generated/CustomerContact_aggregation.d.ts +5 -0
- package/dist/generated/CustomerContact_aggregation.js +5 -0
- package/dist/generated/CustomerCreate.d.ts +16 -0
- package/dist/generated/CustomerCreate.js +5 -0
- package/dist/generated/CustomerFields.d.ts +10 -0
- package/dist/generated/CustomerFields.js +5 -0
- package/dist/generated/CustomerFilter.d.ts +20 -0
- package/dist/generated/CustomerFilter.js +5 -0
- package/dist/generated/CustomerName.d.ts +5 -0
- package/dist/generated/CustomerName.js +5 -0
- package/dist/generated/CustomerNameClient.d.ts +26 -0
- package/dist/generated/CustomerNameClient.js +44 -0
- package/dist/generated/CustomerNameCreate.d.ts +5 -0
- package/dist/generated/CustomerNameCreate.js +5 -0
- package/dist/generated/CustomerNameFields.d.ts +10 -0
- package/dist/generated/CustomerNameFields.js +5 -0
- package/dist/generated/CustomerNameFilter.d.ts +8 -0
- package/dist/generated/CustomerNameFilter.js +5 -0
- package/dist/generated/CustomerNameSearchFilter.d.ts +7 -0
- package/dist/generated/CustomerNameSearchFilter.js +5 -0
- package/dist/generated/CustomerNameUpdate.d.ts +23 -0
- package/dist/generated/CustomerNameUpdate.js +75 -0
- package/dist/generated/CustomerName_aggregation.d.ts +6 -0
- package/dist/generated/CustomerName_aggregation.js +5 -0
- package/dist/generated/CustomerPlacedOrder.d.ts +14 -0
- package/dist/generated/CustomerPlacedOrder.js +5 -0
- package/dist/generated/CustomerPlacedOrderClient.d.ts +26 -0
- package/dist/generated/CustomerPlacedOrderClient.js +44 -0
- package/dist/generated/CustomerPlacedOrderCreate.d.ts +18 -0
- package/dist/generated/CustomerPlacedOrderCreate.js +5 -0
- package/dist/generated/CustomerPlacedOrderFields.d.ts +10 -0
- package/dist/generated/CustomerPlacedOrderFields.js +5 -0
- package/dist/generated/CustomerPlacedOrderFilter.d.ts +14 -0
- package/dist/generated/CustomerPlacedOrderFilter.js +5 -0
- package/dist/generated/CustomerPlacedOrderOrder_aggregation.d.ts +16 -0
- package/dist/generated/CustomerPlacedOrderOrder_aggregation.js +5 -0
- package/dist/generated/CustomerPlacedOrderUpdate.d.ts +27 -0
- package/dist/generated/CustomerPlacedOrderUpdate.js +101 -0
- package/dist/generated/CustomerSearchFilter.d.ts +22 -0
- package/dist/generated/CustomerSearchFilter.js +5 -0
- package/dist/generated/CustomerUpdate.d.ts +42 -0
- package/dist/generated/CustomerUpdate.js +179 -0
- package/dist/generated/InventoryItem.d.ts +15 -0
- package/dist/generated/InventoryItem.js +5 -0
- package/dist/generated/InventoryItemClient.d.ts +26 -0
- package/dist/generated/InventoryItemClient.js +44 -0
- package/dist/generated/InventoryItemCreate.d.ts +10 -0
- package/dist/generated/InventoryItemCreate.js +5 -0
- package/dist/generated/InventoryItemFields.d.ts +10 -0
- package/dist/generated/InventoryItemFields.js +5 -0
- package/dist/generated/InventoryItemFilter.d.ts +14 -0
- package/dist/generated/InventoryItemFilter.js +5 -0
- package/dist/generated/InventoryItemForProduct.d.ts +13 -0
- package/dist/generated/InventoryItemForProduct.js +5 -0
- package/dist/generated/InventoryItemForProductClient.d.ts +26 -0
- package/dist/generated/InventoryItemForProductClient.js +44 -0
- package/dist/generated/InventoryItemForProductCreate.d.ts +17 -0
- package/dist/generated/InventoryItemForProductCreate.js +5 -0
- package/dist/generated/InventoryItemForProductFields.d.ts +10 -0
- package/dist/generated/InventoryItemForProductFields.js +5 -0
- package/dist/generated/InventoryItemForProductFilter.d.ts +13 -0
- package/dist/generated/InventoryItemForProductFilter.js +5 -0
- package/dist/generated/InventoryItemForProductUpdate.d.ts +25 -0
- package/dist/generated/InventoryItemForProductUpdate.js +88 -0
- package/dist/generated/InventoryItemIsInStore.d.ts +13 -0
- package/dist/generated/InventoryItemIsInStore.js +5 -0
- package/dist/generated/InventoryItemIsInStoreClient.d.ts +26 -0
- package/dist/generated/InventoryItemIsInStoreClient.js +44 -0
- package/dist/generated/InventoryItemIsInStoreCreate.d.ts +17 -0
- package/dist/generated/InventoryItemIsInStoreCreate.js +5 -0
- package/dist/generated/InventoryItemIsInStoreFields.d.ts +10 -0
- package/dist/generated/InventoryItemIsInStoreFields.js +5 -0
- package/dist/generated/InventoryItemIsInStoreFilter.d.ts +13 -0
- package/dist/generated/InventoryItemIsInStoreFilter.js +5 -0
- package/dist/generated/InventoryItemIsInStoreUpdate.d.ts +25 -0
- package/dist/generated/InventoryItemIsInStoreUpdate.js +88 -0
- package/dist/generated/InventoryItemUpdate.d.ts +33 -0
- package/dist/generated/InventoryItemUpdate.js +140 -0
- package/dist/generated/Order.d.ts +23 -0
- package/dist/generated/Order.js +5 -0
- package/dist/generated/OrderClient.d.ts +30 -0
- package/dist/generated/OrderClient.js +48 -0
- package/dist/generated/OrderCreate.d.ts +14 -0
- package/dist/generated/OrderCreate.js +5 -0
- package/dist/generated/OrderFields.d.ts +10 -0
- package/dist/generated/OrderFields.js +5 -0
- package/dist/generated/OrderFilter.d.ts +17 -0
- package/dist/generated/OrderFilter.js +5 -0
- package/dist/generated/OrderHasOrderItem.d.ts +13 -0
- package/dist/generated/OrderHasOrderItem.js +5 -0
- package/dist/generated/OrderHasOrderItemClient.d.ts +26 -0
- package/dist/generated/OrderHasOrderItemClient.js +44 -0
- package/dist/generated/OrderHasOrderItemCreate.d.ts +17 -0
- package/dist/generated/OrderHasOrderItemCreate.js +5 -0
- package/dist/generated/OrderHasOrderItemFields.d.ts +10 -0
- package/dist/generated/OrderHasOrderItemFields.js +5 -0
- package/dist/generated/OrderHasOrderItemFilter.d.ts +13 -0
- package/dist/generated/OrderHasOrderItemFilter.js +5 -0
- package/dist/generated/OrderHasOrderItemOrderItem_aggregation.d.ts +13 -0
- package/dist/generated/OrderHasOrderItemOrderItem_aggregation.js +5 -0
- package/dist/generated/OrderHasOrderItemUpdate.d.ts +25 -0
- package/dist/generated/OrderHasOrderItemUpdate.js +88 -0
- package/dist/generated/OrderHasPayment.d.ts +13 -0
- package/dist/generated/OrderHasPayment.js +5 -0
- package/dist/generated/OrderHasPaymentClient.d.ts +26 -0
- package/dist/generated/OrderHasPaymentClient.js +44 -0
- package/dist/generated/OrderHasPaymentCreate.d.ts +17 -0
- package/dist/generated/OrderHasPaymentCreate.js +5 -0
- package/dist/generated/OrderHasPaymentFields.d.ts +10 -0
- package/dist/generated/OrderHasPaymentFields.js +5 -0
- package/dist/generated/OrderHasPaymentFilter.d.ts +13 -0
- package/dist/generated/OrderHasPaymentFilter.js +5 -0
- package/dist/generated/OrderHasPaymentPayment_aggregation.d.ts +16 -0
- package/dist/generated/OrderHasPaymentPayment_aggregation.js +5 -0
- package/dist/generated/OrderHasPaymentUpdate.d.ts +25 -0
- package/dist/generated/OrderHasPaymentUpdate.js +88 -0
- package/dist/generated/OrderIsAssociatedWithStore.d.ts +13 -0
- package/dist/generated/OrderIsAssociatedWithStore.js +5 -0
- package/dist/generated/OrderIsAssociatedWithStoreClient.d.ts +26 -0
- package/dist/generated/OrderIsAssociatedWithStoreClient.js +44 -0
- package/dist/generated/OrderIsAssociatedWithStoreCreate.d.ts +17 -0
- package/dist/generated/OrderIsAssociatedWithStoreCreate.js +5 -0
- package/dist/generated/OrderIsAssociatedWithStoreFields.d.ts +10 -0
- package/dist/generated/OrderIsAssociatedWithStoreFields.js +5 -0
- package/dist/generated/OrderIsAssociatedWithStoreFilter.d.ts +13 -0
- package/dist/generated/OrderIsAssociatedWithStoreFilter.js +5 -0
- package/dist/generated/OrderIsAssociatedWithStoreStore_aggregation.d.ts +13 -0
- package/dist/generated/OrderIsAssociatedWithStoreStore_aggregation.js +5 -0
- package/dist/generated/OrderIsAssociatedWithStoreUpdate.d.ts +25 -0
- package/dist/generated/OrderIsAssociatedWithStoreUpdate.js +88 -0
- package/dist/generated/OrderItem.d.ts +16 -0
- package/dist/generated/OrderItem.js +5 -0
- package/dist/generated/OrderItemBelongsToOrder.d.ts +13 -0
- package/dist/generated/OrderItemBelongsToOrder.js +5 -0
- package/dist/generated/OrderItemBelongsToOrderClient.d.ts +26 -0
- package/dist/generated/OrderItemBelongsToOrderClient.js +44 -0
- package/dist/generated/OrderItemBelongsToOrderCreate.d.ts +17 -0
- package/dist/generated/OrderItemBelongsToOrderCreate.js +5 -0
- package/dist/generated/OrderItemBelongsToOrderFields.d.ts +10 -0
- package/dist/generated/OrderItemBelongsToOrderFields.js +5 -0
- package/dist/generated/OrderItemBelongsToOrderFilter.d.ts +13 -0
- package/dist/generated/OrderItemBelongsToOrderFilter.js +5 -0
- package/dist/generated/OrderItemBelongsToOrderOrder_aggregation.d.ts +16 -0
- package/dist/generated/OrderItemBelongsToOrderOrder_aggregation.js +5 -0
- package/dist/generated/OrderItemBelongsToOrderUpdate.d.ts +25 -0
- package/dist/generated/OrderItemBelongsToOrderUpdate.js +88 -0
- package/dist/generated/OrderItemClient.d.ts +30 -0
- package/dist/generated/OrderItemClient.js +48 -0
- package/dist/generated/OrderItemCreate.d.ts +11 -0
- package/dist/generated/OrderItemCreate.js +5 -0
- package/dist/generated/OrderItemFields.d.ts +10 -0
- package/dist/generated/OrderItemFields.js +5 -0
- package/dist/generated/OrderItemFilter.d.ts +15 -0
- package/dist/generated/OrderItemFilter.js +5 -0
- package/dist/generated/OrderItemIsForProduct.d.ts +13 -0
- package/dist/generated/OrderItemIsForProduct.js +5 -0
- package/dist/generated/OrderItemIsForProductClient.d.ts +26 -0
- package/dist/generated/OrderItemIsForProductClient.js +44 -0
- package/dist/generated/OrderItemIsForProductCreate.d.ts +17 -0
- package/dist/generated/OrderItemIsForProductCreate.js +5 -0
- package/dist/generated/OrderItemIsForProductFields.d.ts +10 -0
- package/dist/generated/OrderItemIsForProductFields.js +5 -0
- package/dist/generated/OrderItemIsForProductFilter.d.ts +13 -0
- package/dist/generated/OrderItemIsForProductFilter.js +5 -0
- package/dist/generated/OrderItemIsForProductProduct_aggregation.d.ts +21 -0
- package/dist/generated/OrderItemIsForProductProduct_aggregation.js +5 -0
- package/dist/generated/OrderItemIsForProductUpdate.d.ts +25 -0
- package/dist/generated/OrderItemIsForProductUpdate.js +88 -0
- package/dist/generated/OrderItemPricing.d.ts +5 -0
- package/dist/generated/OrderItemPricing.js +5 -0
- package/dist/generated/OrderItemPricingClient.d.ts +26 -0
- package/dist/generated/OrderItemPricingClient.js +44 -0
- package/dist/generated/OrderItemPricingCreate.d.ts +5 -0
- package/dist/generated/OrderItemPricingCreate.js +5 -0
- package/dist/generated/OrderItemPricingFields.d.ts +10 -0
- package/dist/generated/OrderItemPricingFields.js +5 -0
- package/dist/generated/OrderItemPricingFilter.d.ts +6 -0
- package/dist/generated/OrderItemPricingFilter.js +5 -0
- package/dist/generated/OrderItemPricingSearchFilter.d.ts +7 -0
- package/dist/generated/OrderItemPricingSearchFilter.js +5 -0
- package/dist/generated/OrderItemPricingUpdate.d.ts +23 -0
- package/dist/generated/OrderItemPricingUpdate.js +75 -0
- package/dist/generated/OrderItemPricing_aggregation.d.ts +6 -0
- package/dist/generated/OrderItemPricing_aggregation.js +5 -0
- package/dist/generated/OrderItemSearchFilter.d.ts +18 -0
- package/dist/generated/OrderItemSearchFilter.js +5 -0
- package/dist/generated/OrderItemUpdate.d.ts +34 -0
- package/dist/generated/OrderItemUpdate.js +140 -0
- package/dist/generated/OrderSearchFilter.d.ts +23 -0
- package/dist/generated/OrderSearchFilter.js +5 -0
- package/dist/generated/OrderTotals.d.ts +7 -0
- package/dist/generated/OrderTotals.js +5 -0
- package/dist/generated/OrderTotalsClient.d.ts +26 -0
- package/dist/generated/OrderTotalsClient.js +44 -0
- package/dist/generated/OrderTotalsCreate.d.ts +7 -0
- package/dist/generated/OrderTotalsCreate.js +5 -0
- package/dist/generated/OrderTotalsFields.d.ts +10 -0
- package/dist/generated/OrderTotalsFields.js +5 -0
- package/dist/generated/OrderTotalsFilter.d.ts +7 -0
- package/dist/generated/OrderTotalsFilter.js +5 -0
- package/dist/generated/OrderTotalsSearchFilter.d.ts +9 -0
- package/dist/generated/OrderTotalsSearchFilter.js +5 -0
- package/dist/generated/OrderTotalsUpdate.d.ts +27 -0
- package/dist/generated/OrderTotalsUpdate.js +101 -0
- package/dist/generated/OrderTotals_aggregation.d.ts +8 -0
- package/dist/generated/OrderTotals_aggregation.js +5 -0
- package/dist/generated/OrderUpdate.d.ts +40 -0
- package/dist/generated/OrderUpdate.js +179 -0
- package/dist/generated/OrderWasPlacedByCustomer.d.ts +13 -0
- package/dist/generated/OrderWasPlacedByCustomer.js +5 -0
- package/dist/generated/OrderWasPlacedByCustomerClient.d.ts +26 -0
- package/dist/generated/OrderWasPlacedByCustomerClient.js +44 -0
- package/dist/generated/OrderWasPlacedByCustomerCreate.d.ts +17 -0
- package/dist/generated/OrderWasPlacedByCustomerCreate.js +5 -0
- package/dist/generated/OrderWasPlacedByCustomerCustomer_aggregation.d.ts +18 -0
- package/dist/generated/OrderWasPlacedByCustomerCustomer_aggregation.js +5 -0
- package/dist/generated/OrderWasPlacedByCustomerFields.d.ts +10 -0
- package/dist/generated/OrderWasPlacedByCustomerFields.js +5 -0
- package/dist/generated/OrderWasPlacedByCustomerFilter.d.ts +13 -0
- package/dist/generated/OrderWasPlacedByCustomerFilter.js +5 -0
- package/dist/generated/OrderWasPlacedByCustomerUpdate.d.ts +25 -0
- package/dist/generated/OrderWasPlacedByCustomerUpdate.js +88 -0
- package/dist/generated/Payment.d.ts +17 -0
- package/dist/generated/Payment.js +5 -0
- package/dist/generated/PaymentAmount.d.ts +4 -0
- package/dist/generated/PaymentAmount.js +5 -0
- package/dist/generated/PaymentAmountClient.d.ts +26 -0
- package/dist/generated/PaymentAmountClient.js +44 -0
- package/dist/generated/PaymentAmountCreate.d.ts +4 -0
- package/dist/generated/PaymentAmountCreate.js +5 -0
- package/dist/generated/PaymentAmountFields.d.ts +10 -0
- package/dist/generated/PaymentAmountFields.js +5 -0
- package/dist/generated/PaymentAmountFilter.d.ts +7 -0
- package/dist/generated/PaymentAmountFilter.js +5 -0
- package/dist/generated/PaymentAmountSearchFilter.d.ts +6 -0
- package/dist/generated/PaymentAmountSearchFilter.js +5 -0
- package/dist/generated/PaymentAmountUpdate.d.ts +21 -0
- package/dist/generated/PaymentAmountUpdate.js +62 -0
- package/dist/generated/PaymentAmount_aggregation.d.ts +5 -0
- package/dist/generated/PaymentAmount_aggregation.js +5 -0
- package/dist/generated/PaymentClient.d.ts +26 -0
- package/dist/generated/PaymentClient.js +44 -0
- package/dist/generated/PaymentCreate.d.ts +14 -0
- package/dist/generated/PaymentCreate.js +5 -0
- package/dist/generated/PaymentFields.d.ts +10 -0
- package/dist/generated/PaymentFields.js +5 -0
- package/dist/generated/PaymentFilter.d.ts +18 -0
- package/dist/generated/PaymentFilter.js +5 -0
- package/dist/generated/PaymentIsForOrder.d.ts +13 -0
- package/dist/generated/PaymentIsForOrder.js +5 -0
- package/dist/generated/PaymentIsForOrderClient.d.ts +26 -0
- package/dist/generated/PaymentIsForOrderClient.js +44 -0
- package/dist/generated/PaymentIsForOrderCreate.d.ts +17 -0
- package/dist/generated/PaymentIsForOrderCreate.js +5 -0
- package/dist/generated/PaymentIsForOrderFields.d.ts +10 -0
- package/dist/generated/PaymentIsForOrderFields.js +5 -0
- package/dist/generated/PaymentIsForOrderFilter.d.ts +13 -0
- package/dist/generated/PaymentIsForOrderFilter.js +5 -0
- package/dist/generated/PaymentIsForOrderUpdate.d.ts +25 -0
- package/dist/generated/PaymentIsForOrderUpdate.js +88 -0
- package/dist/generated/PaymentUpdate.d.ts +40 -0
- package/dist/generated/PaymentUpdate.js +179 -0
- package/dist/generated/Product.d.ts +28 -0
- package/dist/generated/Product.js +5 -0
- package/dist/generated/ProductAttributes.d.ts +5 -0
- package/dist/generated/ProductAttributes.js +5 -0
- package/dist/generated/ProductAttributesClient.d.ts +26 -0
- package/dist/generated/ProductAttributesClient.js +44 -0
- package/dist/generated/ProductAttributesCreate.d.ts +5 -0
- package/dist/generated/ProductAttributesCreate.js +5 -0
- package/dist/generated/ProductAttributesFields.d.ts +10 -0
- package/dist/generated/ProductAttributesFields.js +5 -0
- package/dist/generated/ProductAttributesFilter.d.ts +8 -0
- package/dist/generated/ProductAttributesFilter.js +5 -0
- package/dist/generated/ProductAttributesSearchFilter.d.ts +7 -0
- package/dist/generated/ProductAttributesSearchFilter.js +5 -0
- package/dist/generated/ProductAttributesUpdate.d.ts +23 -0
- package/dist/generated/ProductAttributesUpdate.js +75 -0
- package/dist/generated/ProductAttributes_aggregation.d.ts +6 -0
- package/dist/generated/ProductAttributes_aggregation.js +5 -0
- package/dist/generated/ProductClient.d.ts +30 -0
- package/dist/generated/ProductClient.js +48 -0
- package/dist/generated/ProductCreate.d.ts +19 -0
- package/dist/generated/ProductCreate.js +5 -0
- package/dist/generated/ProductFields.d.ts +10 -0
- package/dist/generated/ProductFields.js +5 -0
- package/dist/generated/ProductFilter.d.ts +22 -0
- package/dist/generated/ProductFilter.js +5 -0
- package/dist/generated/ProductHasInventoryItem.d.ts +13 -0
- package/dist/generated/ProductHasInventoryItem.js +5 -0
- package/dist/generated/ProductHasInventoryItemClient.d.ts +26 -0
- package/dist/generated/ProductHasInventoryItemClient.js +44 -0
- package/dist/generated/ProductHasInventoryItemCreate.d.ts +17 -0
- package/dist/generated/ProductHasInventoryItemCreate.js +5 -0
- package/dist/generated/ProductHasInventoryItemFields.d.ts +10 -0
- package/dist/generated/ProductHasInventoryItemFields.js +5 -0
- package/dist/generated/ProductHasInventoryItemFilter.d.ts +13 -0
- package/dist/generated/ProductHasInventoryItemFilter.js +5 -0
- package/dist/generated/ProductHasInventoryItemInventoryItem_aggregation.d.ts +12 -0
- package/dist/generated/ProductHasInventoryItemInventoryItem_aggregation.js +5 -0
- package/dist/generated/ProductHasInventoryItemUpdate.d.ts +25 -0
- package/dist/generated/ProductHasInventoryItemUpdate.js +88 -0
- package/dist/generated/ProductInCategory.d.ts +14 -0
- package/dist/generated/ProductInCategory.js +5 -0
- package/dist/generated/ProductInCategoryCategory_aggregation.d.ts +11 -0
- package/dist/generated/ProductInCategoryCategory_aggregation.js +5 -0
- package/dist/generated/ProductInCategoryClient.d.ts +26 -0
- package/dist/generated/ProductInCategoryClient.js +44 -0
- package/dist/generated/ProductInCategoryCreate.d.ts +18 -0
- package/dist/generated/ProductInCategoryCreate.js +5 -0
- package/dist/generated/ProductInCategoryFields.d.ts +10 -0
- package/dist/generated/ProductInCategoryFields.js +5 -0
- package/dist/generated/ProductInCategoryFilter.d.ts +14 -0
- package/dist/generated/ProductInCategoryFilter.js +5 -0
- package/dist/generated/ProductInCategoryUpdate.d.ts +27 -0
- package/dist/generated/ProductInCategoryUpdate.js +101 -0
- package/dist/generated/ProductIsReferencedByOrderItem.d.ts +13 -0
- package/dist/generated/ProductIsReferencedByOrderItem.js +5 -0
- package/dist/generated/ProductIsReferencedByOrderItemClient.d.ts +26 -0
- package/dist/generated/ProductIsReferencedByOrderItemClient.js +44 -0
- package/dist/generated/ProductIsReferencedByOrderItemCreate.d.ts +17 -0
- package/dist/generated/ProductIsReferencedByOrderItemCreate.js +5 -0
- package/dist/generated/ProductIsReferencedByOrderItemFields.d.ts +10 -0
- package/dist/generated/ProductIsReferencedByOrderItemFields.js +5 -0
- package/dist/generated/ProductIsReferencedByOrderItemFilter.d.ts +13 -0
- package/dist/generated/ProductIsReferencedByOrderItemFilter.js +5 -0
- package/dist/generated/ProductIsReferencedByOrderItemOrderItem_aggregation.d.ts +13 -0
- package/dist/generated/ProductIsReferencedByOrderItemOrderItem_aggregation.js +5 -0
- package/dist/generated/ProductIsReferencedByOrderItemUpdate.d.ts +25 -0
- package/dist/generated/ProductIsReferencedByOrderItemUpdate.js +88 -0
- package/dist/generated/ProductIsSuppliedBySupplier.d.ts +13 -0
- package/dist/generated/ProductIsSuppliedBySupplier.js +5 -0
- package/dist/generated/ProductIsSuppliedBySupplierClient.d.ts +26 -0
- package/dist/generated/ProductIsSuppliedBySupplierClient.js +44 -0
- package/dist/generated/ProductIsSuppliedBySupplierCreate.d.ts +17 -0
- package/dist/generated/ProductIsSuppliedBySupplierCreate.js +5 -0
- package/dist/generated/ProductIsSuppliedBySupplierFields.d.ts +10 -0
- package/dist/generated/ProductIsSuppliedBySupplierFields.js +5 -0
- package/dist/generated/ProductIsSuppliedBySupplierFilter.d.ts +13 -0
- package/dist/generated/ProductIsSuppliedBySupplierFilter.js +5 -0
- package/dist/generated/ProductIsSuppliedBySupplierSupplier_aggregation.d.ts +14 -0
- package/dist/generated/ProductIsSuppliedBySupplierSupplier_aggregation.js +5 -0
- package/dist/generated/ProductIsSuppliedBySupplierUpdate.d.ts +25 -0
- package/dist/generated/ProductIsSuppliedBySupplierUpdate.js +88 -0
- package/dist/generated/ProductPricing.d.ts +4 -0
- package/dist/generated/ProductPricing.js +5 -0
- package/dist/generated/ProductPricingClient.d.ts +26 -0
- package/dist/generated/ProductPricingClient.js +44 -0
- package/dist/generated/ProductPricingCreate.d.ts +4 -0
- package/dist/generated/ProductPricingCreate.js +5 -0
- package/dist/generated/ProductPricingFields.d.ts +10 -0
- package/dist/generated/ProductPricingFields.js +5 -0
- package/dist/generated/ProductPricingFilter.d.ts +7 -0
- package/dist/generated/ProductPricingFilter.js +5 -0
- package/dist/generated/ProductPricingSearchFilter.d.ts +6 -0
- package/dist/generated/ProductPricingSearchFilter.js +5 -0
- package/dist/generated/ProductPricingUpdate.d.ts +21 -0
- package/dist/generated/ProductPricingUpdate.js +62 -0
- package/dist/generated/ProductPricing_aggregation.d.ts +5 -0
- package/dist/generated/ProductPricing_aggregation.js +5 -0
- package/dist/generated/ProductSearchFilter.d.ts +28 -0
- package/dist/generated/ProductSearchFilter.js +5 -0
- package/dist/generated/ProductTax.d.ts +3 -0
- package/dist/generated/ProductTax.js +5 -0
- package/dist/generated/ProductTaxClient.d.ts +26 -0
- package/dist/generated/ProductTaxClient.js +44 -0
- package/dist/generated/ProductTaxCreate.d.ts +3 -0
- package/dist/generated/ProductTaxCreate.js +5 -0
- package/dist/generated/ProductTaxFields.d.ts +10 -0
- package/dist/generated/ProductTaxFields.js +5 -0
- package/dist/generated/ProductTaxFilter.d.ts +6 -0
- package/dist/generated/ProductTaxFilter.js +5 -0
- package/dist/generated/ProductTaxSearchFilter.d.ts +5 -0
- package/dist/generated/ProductTaxSearchFilter.js +5 -0
- package/dist/generated/ProductTaxUpdate.d.ts +19 -0
- package/dist/generated/ProductTaxUpdate.js +49 -0
- package/dist/generated/ProductTax_aggregation.d.ts +4 -0
- package/dist/generated/ProductTax_aggregation.js +5 -0
- package/dist/generated/ProductUpdate.d.ts +48 -0
- package/dist/generated/ProductUpdate.js +218 -0
- package/dist/generated/SearchCustomerAddress_aggregation.d.ts +7 -0
- package/dist/generated/SearchCustomerAddress_aggregation.js +5 -0
- package/dist/generated/SearchCustomerAggregationDetails.d.ts +7 -0
- package/dist/generated/SearchCustomerAggregationDetails.js +5 -0
- package/dist/generated/SearchCustomerContact_aggregation.d.ts +5 -0
- package/dist/generated/SearchCustomerContact_aggregation.js +5 -0
- package/dist/generated/SearchCustomerCustomerPlacedOrder_aggregation.d.ts +15 -0
- package/dist/generated/SearchCustomerCustomerPlacedOrder_aggregation.js +5 -0
- package/dist/generated/SearchCustomerName_aggregation.d.ts +6 -0
- package/dist/generated/SearchCustomerName_aggregation.js +5 -0
- package/dist/generated/SearchCustomer_aggregation.d.ts +20 -0
- package/dist/generated/SearchCustomer_aggregation.js +5 -0
- package/dist/generated/SearchOrderAggregationDetails.d.ts +7 -0
- package/dist/generated/SearchOrderAggregationDetails.js +5 -0
- package/dist/generated/SearchOrderItemAggregationDetails.d.ts +7 -0
- package/dist/generated/SearchOrderItemAggregationDetails.js +5 -0
- package/dist/generated/SearchOrderItemOrderItemBelongsToOrder_aggregation.d.ts +14 -0
- package/dist/generated/SearchOrderItemOrderItemBelongsToOrder_aggregation.js +5 -0
- package/dist/generated/SearchOrderItemOrderItemIsForProduct_aggregation.d.ts +14 -0
- package/dist/generated/SearchOrderItemOrderItemIsForProduct_aggregation.js +5 -0
- package/dist/generated/SearchOrderItemPricing_aggregation.d.ts +6 -0
- package/dist/generated/SearchOrderItemPricing_aggregation.js +5 -0
- package/dist/generated/SearchOrderItem_aggregation.d.ts +17 -0
- package/dist/generated/SearchOrderItem_aggregation.js +5 -0
- package/dist/generated/SearchOrderOrderHasOrderItem_aggregation.d.ts +14 -0
- package/dist/generated/SearchOrderOrderHasOrderItem_aggregation.js +5 -0
- package/dist/generated/SearchOrderOrderHasPayment_aggregation.d.ts +14 -0
- package/dist/generated/SearchOrderOrderHasPayment_aggregation.js +5 -0
- package/dist/generated/SearchOrderOrderIsAssociatedWithStore_aggregation.d.ts +14 -0
- package/dist/generated/SearchOrderOrderIsAssociatedWithStore_aggregation.js +5 -0
- package/dist/generated/SearchOrderOrderWasPlacedByCustomer_aggregation.d.ts +14 -0
- package/dist/generated/SearchOrderOrderWasPlacedByCustomer_aggregation.js +5 -0
- package/dist/generated/SearchOrderTotals_aggregation.d.ts +8 -0
- package/dist/generated/SearchOrderTotals_aggregation.js +5 -0
- package/dist/generated/SearchOrder_aggregation.d.ts +24 -0
- package/dist/generated/SearchOrder_aggregation.js +5 -0
- package/dist/generated/SearchProductAggregationDetails.d.ts +7 -0
- package/dist/generated/SearchProductAggregationDetails.js +5 -0
- package/dist/generated/SearchProductAttributes_aggregation.d.ts +6 -0
- package/dist/generated/SearchProductAttributes_aggregation.js +5 -0
- package/dist/generated/SearchProductPricing_aggregation.d.ts +5 -0
- package/dist/generated/SearchProductPricing_aggregation.js +5 -0
- package/dist/generated/SearchProductProductHasInventoryItem_aggregation.d.ts +14 -0
- package/dist/generated/SearchProductProductHasInventoryItem_aggregation.js +5 -0
- package/dist/generated/SearchProductProductInCategory_aggregation.d.ts +15 -0
- package/dist/generated/SearchProductProductInCategory_aggregation.js +5 -0
- package/dist/generated/SearchProductProductIsReferencedByOrderItem_aggregation.d.ts +14 -0
- package/dist/generated/SearchProductProductIsReferencedByOrderItem_aggregation.js +5 -0
- package/dist/generated/SearchProductProductIsSuppliedBySupplier_aggregation.d.ts +14 -0
- package/dist/generated/SearchProductProductIsSuppliedBySupplier_aggregation.js +5 -0
- package/dist/generated/SearchProductTax_aggregation.d.ts +4 -0
- package/dist/generated/SearchProductTax_aggregation.js +5 -0
- package/dist/generated/SearchProduct_aggregation.d.ts +29 -0
- package/dist/generated/SearchProduct_aggregation.js +5 -0
- package/dist/generated/Store.d.ts +16 -0
- package/dist/generated/Store.js +5 -0
- package/dist/generated/StoreAddress.d.ts +4 -0
- package/dist/generated/StoreAddress.js +5 -0
- package/dist/generated/StoreAddressClient.d.ts +26 -0
- package/dist/generated/StoreAddressClient.js +44 -0
- package/dist/generated/StoreAddressCreate.d.ts +4 -0
- package/dist/generated/StoreAddressCreate.js +5 -0
- package/dist/generated/StoreAddressFields.d.ts +10 -0
- package/dist/generated/StoreAddressFields.js +5 -0
- package/dist/generated/StoreAddressFilter.d.ts +7 -0
- package/dist/generated/StoreAddressFilter.js +5 -0
- package/dist/generated/StoreAddressSearchFilter.d.ts +6 -0
- package/dist/generated/StoreAddressSearchFilter.js +5 -0
- package/dist/generated/StoreAddressUpdate.d.ts +21 -0
- package/dist/generated/StoreAddressUpdate.js +62 -0
- package/dist/generated/StoreAddress_aggregation.d.ts +5 -0
- package/dist/generated/StoreAddress_aggregation.js +5 -0
- package/dist/generated/StoreClient.d.ts +26 -0
- package/dist/generated/StoreClient.js +44 -0
- package/dist/generated/StoreCreate.d.ts +11 -0
- package/dist/generated/StoreCreate.js +5 -0
- package/dist/generated/StoreFields.d.ts +10 -0
- package/dist/generated/StoreFields.js +5 -0
- package/dist/generated/StoreFilter.d.ts +15 -0
- package/dist/generated/StoreFilter.js +5 -0
- package/dist/generated/StoreHasInventoryItem.d.ts +13 -0
- package/dist/generated/StoreHasInventoryItem.js +5 -0
- package/dist/generated/StoreHasInventoryItemClient.d.ts +26 -0
- package/dist/generated/StoreHasInventoryItemClient.js +44 -0
- package/dist/generated/StoreHasInventoryItemCreate.d.ts +17 -0
- package/dist/generated/StoreHasInventoryItemCreate.js +5 -0
- package/dist/generated/StoreHasInventoryItemFields.d.ts +10 -0
- package/dist/generated/StoreHasInventoryItemFields.js +5 -0
- package/dist/generated/StoreHasInventoryItemFilter.d.ts +13 -0
- package/dist/generated/StoreHasInventoryItemFilter.js +5 -0
- package/dist/generated/StoreHasInventoryItemUpdate.d.ts +25 -0
- package/dist/generated/StoreHasInventoryItemUpdate.js +88 -0
- package/dist/generated/StoreHasOrder.d.ts +13 -0
- package/dist/generated/StoreHasOrder.js +5 -0
- package/dist/generated/StoreHasOrderClient.d.ts +26 -0
- package/dist/generated/StoreHasOrderClient.js +44 -0
- package/dist/generated/StoreHasOrderCreate.d.ts +17 -0
- package/dist/generated/StoreHasOrderCreate.js +5 -0
- package/dist/generated/StoreHasOrderFields.d.ts +10 -0
- package/dist/generated/StoreHasOrderFields.js +5 -0
- package/dist/generated/StoreHasOrderFilter.d.ts +13 -0
- package/dist/generated/StoreHasOrderFilter.js +5 -0
- package/dist/generated/StoreHasOrderUpdate.d.ts +25 -0
- package/dist/generated/StoreHasOrderUpdate.js +88 -0
- package/dist/generated/StoreUpdate.d.ts +34 -0
- package/dist/generated/StoreUpdate.js +140 -0
- package/dist/generated/Supplier.d.ts +15 -0
- package/dist/generated/Supplier.js +5 -0
- package/dist/generated/SupplierAddress.d.ts +3 -0
- package/dist/generated/SupplierAddress.js +5 -0
- package/dist/generated/SupplierAddressClient.d.ts +26 -0
- package/dist/generated/SupplierAddressClient.js +44 -0
- package/dist/generated/SupplierAddressCreate.d.ts +3 -0
- package/dist/generated/SupplierAddressCreate.js +5 -0
- package/dist/generated/SupplierAddressFields.d.ts +10 -0
- package/dist/generated/SupplierAddressFields.js +5 -0
- package/dist/generated/SupplierAddressFilter.d.ts +6 -0
- package/dist/generated/SupplierAddressFilter.js +5 -0
- package/dist/generated/SupplierAddressSearchFilter.d.ts +5 -0
- package/dist/generated/SupplierAddressSearchFilter.js +5 -0
- package/dist/generated/SupplierAddressUpdate.d.ts +19 -0
- package/dist/generated/SupplierAddressUpdate.js +49 -0
- package/dist/generated/SupplierAddress_aggregation.d.ts +4 -0
- package/dist/generated/SupplierAddress_aggregation.js +5 -0
- package/dist/generated/SupplierClient.d.ts +26 -0
- package/dist/generated/SupplierClient.js +44 -0
- package/dist/generated/SupplierContact.d.ts +4 -0
- package/dist/generated/SupplierContact.js +5 -0
- package/dist/generated/SupplierContactClient.d.ts +26 -0
- package/dist/generated/SupplierContactClient.js +44 -0
- package/dist/generated/SupplierContactCreate.d.ts +4 -0
- package/dist/generated/SupplierContactCreate.js +5 -0
- package/dist/generated/SupplierContactFields.d.ts +10 -0
- package/dist/generated/SupplierContactFields.js +5 -0
- package/dist/generated/SupplierContactFilter.d.ts +7 -0
- package/dist/generated/SupplierContactFilter.js +5 -0
- package/dist/generated/SupplierContactSearchFilter.d.ts +6 -0
- package/dist/generated/SupplierContactSearchFilter.js +5 -0
- package/dist/generated/SupplierContactUpdate.d.ts +21 -0
- package/dist/generated/SupplierContactUpdate.js +62 -0
- package/dist/generated/SupplierContact_aggregation.d.ts +5 -0
- package/dist/generated/SupplierContact_aggregation.js +5 -0
- package/dist/generated/SupplierCreate.d.ts +12 -0
- package/dist/generated/SupplierCreate.js +5 -0
- package/dist/generated/SupplierFields.d.ts +10 -0
- package/dist/generated/SupplierFields.js +5 -0
- package/dist/generated/SupplierFilter.d.ts +16 -0
- package/dist/generated/SupplierFilter.js +5 -0
- package/dist/generated/SupplierSuppliesProduct.d.ts +15 -0
- package/dist/generated/SupplierSuppliesProduct.js +5 -0
- package/dist/generated/SupplierSuppliesProductClient.d.ts +26 -0
- package/dist/generated/SupplierSuppliesProductClient.js +44 -0
- package/dist/generated/SupplierSuppliesProductCreate.d.ts +19 -0
- package/dist/generated/SupplierSuppliesProductCreate.js +5 -0
- package/dist/generated/SupplierSuppliesProductFields.d.ts +10 -0
- package/dist/generated/SupplierSuppliesProductFields.js +5 -0
- package/dist/generated/SupplierSuppliesProductFilter.d.ts +15 -0
- package/dist/generated/SupplierSuppliesProductFilter.js +5 -0
- package/dist/generated/SupplierSuppliesProductUpdate.d.ts +29 -0
- package/dist/generated/SupplierSuppliesProductUpdate.js +114 -0
- package/dist/generated/SupplierUpdate.d.ts +35 -0
- package/dist/generated/SupplierUpdate.js +140 -0
- package/dist/generated/index.d.ts +301 -0
- package/dist/generated/index.js +301 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/runtime/aggregations.d.ts +42 -0
- package/dist/runtime/aggregations.js +24 -0
- package/dist/runtime/fields.d.ts +26 -0
- package/dist/runtime/fields.js +58 -0
- package/dist/runtime/filter.d.ts +78 -0
- package/dist/runtime/filter.js +30 -0
- package/dist/runtime/index.d.ts +5 -0
- package/dist/runtime/index.js +5 -0
- package/dist/runtime/operations.d.ts +59 -0
- package/dist/runtime/operations.js +112 -0
- package/dist/runtime/order-by.d.ts +25 -0
- package/dist/runtime/order-by.js +49 -0
- package/dist/subscriptions/grpc-client.d.ts +36 -0
- package/dist/subscriptions/grpc-client.js +57 -0
- package/dist/subscriptions/index.d.ts +3 -0
- package/dist/subscriptions/index.js +2 -0
- package/dist/subscriptions/subscription-manager.d.ts +26 -0
- package/dist/subscriptions/subscription-manager.js +211 -0
- package/dist/subscriptions/subscription.d.ts +43 -0
- package/dist/subscriptions/subscription.js +61 -0
- package/dist/subscriptions/types.d.ts +63 -0
- package/dist/subscriptions/types.js +6 -0
- package/package.json +48 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { openSubscriptionStream } from "./grpc-client.js";
|
|
2
|
+
import * as grpc from "@grpc/grpc-js";
|
|
3
|
+
/**
|
|
4
|
+
* Run the subscription: open a gRPC stream, read events, dispatch to handlers,
|
|
5
|
+
* reconnect on transient errors, exit cleanly when the subscription is cancelled.
|
|
6
|
+
*/
|
|
7
|
+
export async function runSubscription(subscription, opts) {
|
|
8
|
+
const slowMs = opts.slowHandlerThresholdMs ?? 500;
|
|
9
|
+
const maxReconnects = opts.maxReconnectAttempts ?? 10;
|
|
10
|
+
const baseReconnectMs = opts.reconnectBaseMs ?? 1000;
|
|
11
|
+
let reconnectDelay = baseReconnectMs;
|
|
12
|
+
while (!subscription.signal.aborted) {
|
|
13
|
+
const token = await opts.tokenProvider.getAccessToken([opts.subscriptionScope]);
|
|
14
|
+
const stream = openSubscriptionStream({
|
|
15
|
+
subscriptionUrl: opts.subscriptionUrl,
|
|
16
|
+
accessToken: token,
|
|
17
|
+
request: subscription.request,
|
|
18
|
+
});
|
|
19
|
+
const cancelOnAbort = () => stream.cancel();
|
|
20
|
+
subscription.signal.addEventListener("abort", cancelOnAbort, { once: true });
|
|
21
|
+
try {
|
|
22
|
+
await readStream(stream, subscription, opts.logger, slowMs);
|
|
23
|
+
// Stream ended cleanly (server closed) — exit
|
|
24
|
+
subscription.signal.removeEventListener("abort", cancelOnAbort);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
subscription.signal.removeEventListener("abort", cancelOnAbort);
|
|
29
|
+
if (subscription.signal.aborted) {
|
|
30
|
+
// Normal shutdown
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const isCancelled = isRpcCancelled(err);
|
|
34
|
+
if (isCancelled)
|
|
35
|
+
return;
|
|
36
|
+
subscription.retryCount++;
|
|
37
|
+
if (subscription.retryCount > maxReconnects) {
|
|
38
|
+
opts.logger.log("error", `Subscription ${subscription.id} exceeded ${maxReconnects} reconnect attempts, giving up.`, err);
|
|
39
|
+
throw err;
|
|
40
|
+
}
|
|
41
|
+
// Dispatch a synthetic CONNECTION_LOST event to every handler so apps can react.
|
|
42
|
+
const lostEvt = syntheticEvent("CONNECTION_LOST", subscription);
|
|
43
|
+
await dispatchToAll(subscription, lostEvt, opts.logger, slowMs);
|
|
44
|
+
opts.logger.log("warn", `Subscription ${subscription.id} stream error (attempt ${subscription.retryCount}/${maxReconnects}): ${errorMessage(err)}. Reconnecting in ${reconnectDelay}ms.`);
|
|
45
|
+
await delay(reconnectDelay);
|
|
46
|
+
reconnectDelay = Math.min(reconnectDelay * 2, 60_000);
|
|
47
|
+
// Mutate the request so the next iteration resumes instead of restarting
|
|
48
|
+
// from scratch (avoids re-running the entire baseload after a transient
|
|
49
|
+
// drop). Mirrors DataceenClient.cs:ConnectionLostAsync.
|
|
50
|
+
prepareRequestForReconnect(subscription);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function prepareRequestForReconnect(subscription) {
|
|
55
|
+
const req = subscription.request;
|
|
56
|
+
const lastPos = subscription.lastPosition;
|
|
57
|
+
if (subscription.isBaseLoading) {
|
|
58
|
+
req.baseloadContinueObjectType = subscription.baseloadLabel;
|
|
59
|
+
if (lastPos)
|
|
60
|
+
req.position = lastPos;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
req.baseloadTopics = [];
|
|
64
|
+
req.baseloadContinueObjectType = "";
|
|
65
|
+
req.positionBeforeBaseload = "";
|
|
66
|
+
if (req.startMode === "POSITION_BEGINNING" ||
|
|
67
|
+
req.startMode === "POSITION_END" ||
|
|
68
|
+
req.startMode === "POSITION_TIME") {
|
|
69
|
+
req.startMode = "POSITION_EXACT";
|
|
70
|
+
}
|
|
71
|
+
if (lastPos)
|
|
72
|
+
req.position = lastPos;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async function readStream(stream, subscription, logger, slowMs) {
|
|
76
|
+
for await (const raw of stream) {
|
|
77
|
+
if (subscription.signal.aborted)
|
|
78
|
+
break;
|
|
79
|
+
if (raw.messagetype === "KEEPALIVE")
|
|
80
|
+
continue;
|
|
81
|
+
// First event after a retry → emit CONNECTION_RECONNECTED to handlers
|
|
82
|
+
if (subscription.retryCount > 0) {
|
|
83
|
+
const reconnectEvt = syntheticEvent("CONNECTION_RECONNECTED", subscription);
|
|
84
|
+
await dispatchToAll(subscription, reconnectEvt, logger, slowMs);
|
|
85
|
+
subscription.retryCount = 0;
|
|
86
|
+
}
|
|
87
|
+
// Track baseload state
|
|
88
|
+
const evtType = raw.eventtype;
|
|
89
|
+
if (evtType === "BASELOAD_END" || evtType === "BASELOAD_STEP_1") {
|
|
90
|
+
subscription.isBaseLoading = false;
|
|
91
|
+
}
|
|
92
|
+
else if (evtType === "BASELOAD_EVENT") {
|
|
93
|
+
subscription.isBaseLoading = true;
|
|
94
|
+
subscription.baseloadLabel = raw.topic;
|
|
95
|
+
subscription.lastPosition = raw.position;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
subscription.isBaseLoading = false;
|
|
99
|
+
subscription.lastPosition = raw.position;
|
|
100
|
+
}
|
|
101
|
+
const lowLevel = toLowLevelEvent(raw);
|
|
102
|
+
await dispatchOne(subscription, lowLevel, logger, slowMs);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/** @internal exposed for testing */
|
|
106
|
+
export async function dispatchOne(subscription, lowLevel, logger, slowMs) {
|
|
107
|
+
// Typed handler for this topic (if any)
|
|
108
|
+
const handler = subscription.getHandler(lowLevel.topic);
|
|
109
|
+
if (handler) {
|
|
110
|
+
await invokeTyped(handler, lowLevel, logger, slowMs);
|
|
111
|
+
}
|
|
112
|
+
// All low-level handlers
|
|
113
|
+
for (const lh of subscription.getLowLevelHandlers()) {
|
|
114
|
+
await runWithTiming(logger, slowMs, `low-level handler (topic=${lowLevel.topic})`, () => lh(lowLevel));
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
async function dispatchToAll(subscription, lowLevel, logger, slowMs) {
|
|
118
|
+
for (const [topic, handler] of subscription.getAllHandlers()) {
|
|
119
|
+
await invokeTyped(handler, { ...lowLevel, topic }, logger, slowMs);
|
|
120
|
+
}
|
|
121
|
+
for (const lh of subscription.getLowLevelHandlers()) {
|
|
122
|
+
await runWithTiming(logger, slowMs, `low-level handler (synthetic ${lowLevel.eventType})`, () => lh(lowLevel));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
async function invokeTyped(handler, lowLevel, logger, slowMs) {
|
|
126
|
+
let parsed = undefined;
|
|
127
|
+
if (lowLevel.complete && lowLevel.complete.length > 0) {
|
|
128
|
+
try {
|
|
129
|
+
parsed = JSON.parse(lowLevel.complete);
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
logger.log("warn", `Subscription event for topic ${lowLevel.topic} had unparseable 'complete' payload`, err);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const typed = { ...lowLevel, complete: parsed };
|
|
136
|
+
await runWithTiming(logger, slowMs, `typed handler (topic=${lowLevel.topic})`, () => handler(typed));
|
|
137
|
+
}
|
|
138
|
+
async function runWithTiming(logger, slowMs, label, action) {
|
|
139
|
+
const start = Date.now();
|
|
140
|
+
try {
|
|
141
|
+
await action();
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
logger.log("error", `Handler threw (${label})`, err);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const elapsed = Date.now() - start;
|
|
148
|
+
if (elapsed > slowMs) {
|
|
149
|
+
logger.log("warn", `Slow ${label}: ${elapsed}ms`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/** @internal exposed for testing */
|
|
153
|
+
export function toLowLevelEvent(raw) {
|
|
154
|
+
return {
|
|
155
|
+
position: raw.position,
|
|
156
|
+
eventDateTime: eventTimeToIso(raw.eventtime),
|
|
157
|
+
operationType: raw.operationtype,
|
|
158
|
+
clientId: raw.clientid,
|
|
159
|
+
topic: raw.topic,
|
|
160
|
+
id: raw.id,
|
|
161
|
+
fromId: raw.fromid,
|
|
162
|
+
toId: raw.toid,
|
|
163
|
+
delta: raw.delta,
|
|
164
|
+
complete: raw.complete,
|
|
165
|
+
eventType: raw.eventtype,
|
|
166
|
+
objectType: raw.objecttype,
|
|
167
|
+
domain: raw.domain,
|
|
168
|
+
model: raw.model,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
function eventTimeToIso(ts) {
|
|
172
|
+
if (!ts)
|
|
173
|
+
return "";
|
|
174
|
+
if (typeof ts === "string")
|
|
175
|
+
return ts;
|
|
176
|
+
const seconds = Number(ts.seconds);
|
|
177
|
+
const ms = seconds * 1000 + Math.floor(ts.nanos / 1_000_000);
|
|
178
|
+
return new Date(ms).toISOString();
|
|
179
|
+
}
|
|
180
|
+
function syntheticEvent(eventType, subscription) {
|
|
181
|
+
return {
|
|
182
|
+
position: subscription.lastPosition,
|
|
183
|
+
eventDateTime: new Date().toISOString(),
|
|
184
|
+
operationType: "UPDATE",
|
|
185
|
+
clientId: "",
|
|
186
|
+
topic: "",
|
|
187
|
+
id: "",
|
|
188
|
+
fromId: "",
|
|
189
|
+
toId: "",
|
|
190
|
+
delta: "",
|
|
191
|
+
complete: "",
|
|
192
|
+
eventType,
|
|
193
|
+
objectType: "NODE",
|
|
194
|
+
domain: subscription.request.domain,
|
|
195
|
+
model: subscription.request.model,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
function isRpcCancelled(err) {
|
|
199
|
+
if (typeof err !== "object" || err === null)
|
|
200
|
+
return false;
|
|
201
|
+
const e = err;
|
|
202
|
+
return e.code === grpc.status.CANCELLED || e.code === "CANCELLED";
|
|
203
|
+
}
|
|
204
|
+
function errorMessage(err) {
|
|
205
|
+
if (err instanceof Error)
|
|
206
|
+
return err.message;
|
|
207
|
+
return String(err);
|
|
208
|
+
}
|
|
209
|
+
function delay(ms) {
|
|
210
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
211
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { EventHandler, LowLevelEventHandler, SubscriptionRequest } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* A subscription — a collection of per-topic typed handlers plus optional
|
|
4
|
+
* low-level handlers, all sharing a single gRPC stream.
|
|
5
|
+
*
|
|
6
|
+
* The lifetime pattern matches the C# Subscription class:
|
|
7
|
+
* const sub = dataceen.createSubscription(request);
|
|
8
|
+
* sub.on<Customer>("Customer", handler);
|
|
9
|
+
* sub.on<Order>("Order", handler);
|
|
10
|
+
* await dataceen.subscribe(sub); // blocks until sub.cancel() or stream ends
|
|
11
|
+
*/
|
|
12
|
+
export declare class Subscription {
|
|
13
|
+
readonly id: string;
|
|
14
|
+
readonly request: SubscriptionRequest;
|
|
15
|
+
/** Server's current position in the event stream — updated as events arrive. */
|
|
16
|
+
lastPosition: string;
|
|
17
|
+
/** True while the server is emitting BASELOAD_EVENT items. */
|
|
18
|
+
isBaseLoading: boolean;
|
|
19
|
+
/** Topic currently being baseloaded (set by BASELOAD_EVENT, cleared by BASELOAD_STEP_1). */
|
|
20
|
+
baseloadLabel: string;
|
|
21
|
+
/** Reconnect attempt counter — used to dispatch CONNECTION_RECONNECTED on first success after a retry. */
|
|
22
|
+
retryCount: number;
|
|
23
|
+
private readonly handlers;
|
|
24
|
+
private readonly lowLevelHandlers;
|
|
25
|
+
private readonly abortController;
|
|
26
|
+
constructor(id: string, request: SubscriptionRequest);
|
|
27
|
+
/** Register a typed handler for a topic (entity type name). Overwrites any prior handler for that topic. */
|
|
28
|
+
on<T>(topic: string, handler: EventHandler<T>): void;
|
|
29
|
+
/** Remove the handler for a topic. */
|
|
30
|
+
off(topic: string): void;
|
|
31
|
+
/** Register a handler that receives every event in its raw (unparsed) form. */
|
|
32
|
+
onLowLevel(handler: LowLevelEventHandler): void;
|
|
33
|
+
/** AbortSignal consumed by the subscription manager. */
|
|
34
|
+
get signal(): AbortSignal;
|
|
35
|
+
/** Stop the stream. The subscribe() Promise will resolve cleanly. */
|
|
36
|
+
cancel(): void;
|
|
37
|
+
/** @internal */
|
|
38
|
+
getHandler(topic: string): EventHandler<unknown> | undefined;
|
|
39
|
+
/** @internal */
|
|
40
|
+
getAllHandlers(): ReadonlyMap<string, EventHandler<unknown>>;
|
|
41
|
+
/** @internal */
|
|
42
|
+
getLowLevelHandlers(): readonly LowLevelEventHandler[];
|
|
43
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A subscription — a collection of per-topic typed handlers plus optional
|
|
3
|
+
* low-level handlers, all sharing a single gRPC stream.
|
|
4
|
+
*
|
|
5
|
+
* The lifetime pattern matches the C# Subscription class:
|
|
6
|
+
* const sub = dataceen.createSubscription(request);
|
|
7
|
+
* sub.on<Customer>("Customer", handler);
|
|
8
|
+
* sub.on<Order>("Order", handler);
|
|
9
|
+
* await dataceen.subscribe(sub); // blocks until sub.cancel() or stream ends
|
|
10
|
+
*/
|
|
11
|
+
export class Subscription {
|
|
12
|
+
id;
|
|
13
|
+
request;
|
|
14
|
+
/** Server's current position in the event stream — updated as events arrive. */
|
|
15
|
+
lastPosition = "";
|
|
16
|
+
/** True while the server is emitting BASELOAD_EVENT items. */
|
|
17
|
+
isBaseLoading = false;
|
|
18
|
+
/** Topic currently being baseloaded (set by BASELOAD_EVENT, cleared by BASELOAD_STEP_1). */
|
|
19
|
+
baseloadLabel = "";
|
|
20
|
+
/** Reconnect attempt counter — used to dispatch CONNECTION_RECONNECTED on first success after a retry. */
|
|
21
|
+
retryCount = 0;
|
|
22
|
+
handlers = new Map();
|
|
23
|
+
lowLevelHandlers = [];
|
|
24
|
+
abortController = new AbortController();
|
|
25
|
+
constructor(id, request) {
|
|
26
|
+
this.id = id;
|
|
27
|
+
this.request = request;
|
|
28
|
+
}
|
|
29
|
+
/** Register a typed handler for a topic (entity type name). Overwrites any prior handler for that topic. */
|
|
30
|
+
on(topic, handler) {
|
|
31
|
+
this.handlers.set(topic, handler);
|
|
32
|
+
}
|
|
33
|
+
/** Remove the handler for a topic. */
|
|
34
|
+
off(topic) {
|
|
35
|
+
this.handlers.delete(topic);
|
|
36
|
+
}
|
|
37
|
+
/** Register a handler that receives every event in its raw (unparsed) form. */
|
|
38
|
+
onLowLevel(handler) {
|
|
39
|
+
this.lowLevelHandlers.push(handler);
|
|
40
|
+
}
|
|
41
|
+
/** AbortSignal consumed by the subscription manager. */
|
|
42
|
+
get signal() {
|
|
43
|
+
return this.abortController.signal;
|
|
44
|
+
}
|
|
45
|
+
/** Stop the stream. The subscribe() Promise will resolve cleanly. */
|
|
46
|
+
cancel() {
|
|
47
|
+
this.abortController.abort();
|
|
48
|
+
}
|
|
49
|
+
/** @internal */
|
|
50
|
+
getHandler(topic) {
|
|
51
|
+
return this.handlers.get(topic);
|
|
52
|
+
}
|
|
53
|
+
/** @internal */
|
|
54
|
+
getAllHandlers() {
|
|
55
|
+
return this.handlers;
|
|
56
|
+
}
|
|
57
|
+
/** @internal */
|
|
58
|
+
getLowLevelHandlers() {
|
|
59
|
+
return this.lowLevelHandlers;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subscription types — mirror the Dataceen gRPC proto enums and message shapes.
|
|
3
|
+
* Wire-format enum values (SCREAMING_SNAKE) are used as TS string-union values
|
|
4
|
+
* since the proto-loader is configured with `enums: String`.
|
|
5
|
+
*/
|
|
6
|
+
export type StartMode = "POSITION_BEGINNING" | "POSITION_END" | "POSITION_EXACT" | "POSITION_TIME";
|
|
7
|
+
export type MessageType = "NORMAL" | "KEEPALIVE";
|
|
8
|
+
export type EventType = "SUBSCRIPTION_EVENT" | "BASELOAD_EVENT" | "BASELOAD_STEP_1" | "BASELOAD_STEP_1_ALL" | "BASELOAD_END" | "POSITION_AT_START_PASSED" | "CONNECTION_LOST" | "CONNECTION_RECONNECTED";
|
|
9
|
+
export type OperationType = "CREATE" | "UPDATE" | "DELETE";
|
|
10
|
+
export type ObjectType = "NODE" | "RELATIONSHIP";
|
|
11
|
+
/**
|
|
12
|
+
* Request for opening a subscription stream. Matches the proto
|
|
13
|
+
* `SubscriptionRequest` message (camelCased here; serialization to
|
|
14
|
+
* proto field names happens inside the gRPC layer).
|
|
15
|
+
*/
|
|
16
|
+
export interface SubscriptionRequest {
|
|
17
|
+
domain: string;
|
|
18
|
+
model: string;
|
|
19
|
+
scope: string;
|
|
20
|
+
baseloadTopics?: string[];
|
|
21
|
+
topics: string[];
|
|
22
|
+
ids?: string[];
|
|
23
|
+
startMode?: StartMode;
|
|
24
|
+
position?: string;
|
|
25
|
+
startTime?: Date;
|
|
26
|
+
includeDelta?: boolean;
|
|
27
|
+
includeComplete?: boolean;
|
|
28
|
+
baseloadContinueObjectType?: string;
|
|
29
|
+
positionBeforeBaseload?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Fields shared by typed and low-level subscription events.
|
|
33
|
+
* Camel-cased from the proto's lowercase wire names.
|
|
34
|
+
*/
|
|
35
|
+
export interface SubscriptionEventBase {
|
|
36
|
+
position: string;
|
|
37
|
+
eventDateTime: string;
|
|
38
|
+
operationType: OperationType;
|
|
39
|
+
clientId: string;
|
|
40
|
+
topic: string;
|
|
41
|
+
id: string;
|
|
42
|
+
fromId: string;
|
|
43
|
+
toId: string;
|
|
44
|
+
delta: string;
|
|
45
|
+
eventType: EventType;
|
|
46
|
+
objectType: ObjectType;
|
|
47
|
+
domain: string;
|
|
48
|
+
model: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* A subscription event for a specific entity type. `complete` is parsed JSON
|
|
52
|
+
* when the server included it. Synthetic events (CONNECTION_LOST,
|
|
53
|
+
* CONNECTION_RECONNECTED, BASELOAD_END, BASELOAD_STEP_1) have `complete = undefined`.
|
|
54
|
+
*/
|
|
55
|
+
export interface SubscriptionEvent<T> extends SubscriptionEventBase {
|
|
56
|
+
complete: T | undefined;
|
|
57
|
+
}
|
|
58
|
+
/** Raw event with `complete` as the unparsed JSON string. */
|
|
59
|
+
export interface SubscriptionLowLevelEvent extends SubscriptionEventBase {
|
|
60
|
+
complete: string;
|
|
61
|
+
}
|
|
62
|
+
export type EventHandler<T> = (evt: SubscriptionEvent<T>) => Promise<void> | void;
|
|
63
|
+
export type LowLevelEventHandler = (evt: SubscriptionLowLevelEvent) => Promise<void> | void;
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dataceen-client",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "TypeScript client for Dataceen GraphQL + subscription APIs",
|
|
5
|
+
"private": false,
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": { "types": "./dist/index.d.ts", "import": "./dist/index.js" },
|
|
11
|
+
"./runtime": { "types": "./dist/runtime/index.d.ts", "import": "./dist/runtime/index.js" },
|
|
12
|
+
"./subscriptions": { "types": "./dist/subscriptions/index.d.ts", "import": "./dist/subscriptions/index.js" },
|
|
13
|
+
"./config": { "types": "./dist/config.d.ts", "import": "./dist/config.js" }
|
|
14
|
+
},
|
|
15
|
+
"files": ["dist", "README.md", "LICENSE"],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc -p tsconfig.build.json",
|
|
18
|
+
"prepublishOnly": "npm run build",
|
|
19
|
+
"spike:token": "tsx src/spike/01-token.ts",
|
|
20
|
+
"spike:query": "tsx src/spike/02-graphql-query.ts",
|
|
21
|
+
"spike:subscribe": "tsx src/spike/03-grpc-subscription.ts",
|
|
22
|
+
"spike:introspect": "tsx src/spike/04-introspection.ts",
|
|
23
|
+
"spike:all": "npm run spike:token && npm run spike:query && npm run spike:subscribe",
|
|
24
|
+
"typecheck": "tsc --noEmit",
|
|
25
|
+
"test": "vitest run",
|
|
26
|
+
"test:watch": "vitest",
|
|
27
|
+
"test:integration": "RUN_INTEGRATION=1 vitest run",
|
|
28
|
+
"codegen:schema": "tsx tools/codegen/src/cli-fetch.ts",
|
|
29
|
+
"codegen:emit": "tsx tools/codegen/src/cli-emit.ts",
|
|
30
|
+
"codegen": "npm run codegen:schema && npm run codegen:emit",
|
|
31
|
+
"example:find": "tsx examples/candy-shop/find.ts",
|
|
32
|
+
"example:search": "tsx examples/candy-shop/search-and-aggregate.ts",
|
|
33
|
+
"example:subscribe": "tsx examples/candy-shop/subscriber.ts",
|
|
34
|
+
"example:program": "tsx examples/candy-shop/program.ts"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@azure/msal-node": "^2.16.2",
|
|
38
|
+
"@grpc/grpc-js": "^1.12.5",
|
|
39
|
+
"@grpc/proto-loader": "^0.7.13"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/node": "^22.10.5",
|
|
43
|
+
"dotenv": "^16.4.7",
|
|
44
|
+
"tsx": "^4.19.2",
|
|
45
|
+
"typescript": "^5.7.3",
|
|
46
|
+
"vitest": "^2.1.8"
|
|
47
|
+
}
|
|
48
|
+
}
|