rerobe-js-orm 4.4.6 → 4.4.8

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.
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const FormState_1 = require("../FormState");
4
+ const MerchantConfigAutomatedPayouts_1 = require("../../models/MerchantConfigAutomatedPayouts");
5
+ const merchant_constants_1 = require("../../constants/merchant-constants");
6
+ const enabledOptions = [
7
+ { label: 'Yes', value: 'yes' },
8
+ { label: 'No', value: 'no' },
9
+ ];
10
+ const scheduleOptions = [
11
+ {
12
+ label: 'Payout daily',
13
+ value: merchant_constants_1.AUTOMATED_PAYOUT_SCHEDULE.daily,
14
+ description: 'Payouts will automatically be processed daily.',
15
+ },
16
+ {
17
+ label: 'Payout after X business days',
18
+ value: merchant_constants_1.AUTOMATED_PAYOUT_SCHEDULE.afterBusinessDays,
19
+ description: 'Enter how many business days Ribbn should wait before processing payouts.',
20
+ },
21
+ ];
22
+ // legacy options removed
23
+ class MerchantConfigAutomatedPayoutsFormState extends FormState_1.default {
24
+ constructor(props) {
25
+ super();
26
+ this.props = new MerchantConfigAutomatedPayouts_1.default(props).toObj();
27
+ this.fields.enabled = this.fieldFactory('singleSelect', 'enabled', enabledOptions);
28
+ this.fields.schedule = this.fieldFactory('singleSelect', 'schedule', scheduleOptions);
29
+ // legacy day fields removed
30
+ this.fields.businessDaysAfter = this.fieldFactory('textInput', 'businessDaysAfter');
31
+ this.fields.excludedSellers = this.fieldFactory('multiSelect', 'excludedSellers');
32
+ }
33
+ createMerchantConfigAutomatedPayoutsObj() {
34
+ var _a;
35
+ return Object.assign(Object.assign({}, this.props), { enabled: this.fields.enabled.selectedValue, schedule: this.fields.schedule.selectedValue, businessDaysAfter: this.fields.businessDaysAfter.inputValue
36
+ ? Number(this.fields.businessDaysAfter.inputValue)
37
+ : null, excludedSellers: ((_a = this.fields.excludedSellers) === null || _a === void 0 ? void 0 : _a.selectedValues) || [] });
38
+ }
39
+ fieldFactory(fieldType, fieldKey, fieldOptions) {
40
+ var _a, _b;
41
+ const options = fieldOptions || [];
42
+ if (fieldType === 'singleSelect') {
43
+ const selectedValue = (_a = this.props[fieldKey]) !== null && _a !== void 0 ? _a : '';
44
+ let valid = selectedValue !== undefined && selectedValue !== null;
45
+ let hidden = false;
46
+ let onChangeHandler = (val) => this.singleSelectChangeHandler(fieldKey, val);
47
+ // no legacy day fields
48
+ if (fieldKey === 'schedule') {
49
+ onChangeHandler = (val) => this.scheduleSelectHandler(val);
50
+ // Schedule is optional until enabled='yes' and a schedule chosen
51
+ valid =
52
+ selectedValue === '' ||
53
+ selectedValue === merchant_constants_1.AUTOMATED_PAYOUT_SCHEDULE.daily ||
54
+ selectedValue === merchant_constants_1.AUTOMATED_PAYOUT_SCHEDULE.afterBusinessDays;
55
+ hidden = this.props.enabled !== 'yes';
56
+ }
57
+ if (fieldKey === 'enabled') {
58
+ onChangeHandler = (val) => this.enabledSelectHandler(val);
59
+ valid = selectedValue === 'yes' || selectedValue === 'no';
60
+ }
61
+ return {
62
+ options,
63
+ hidden,
64
+ selectedValue,
65
+ valid,
66
+ onChangeHandler,
67
+ };
68
+ }
69
+ if (fieldType === 'textInput') {
70
+ const inputValue = (_b = this.props[fieldKey]) !== null && _b !== void 0 ? _b : '';
71
+ let valid = inputValue !== '';
72
+ let hidden = false;
73
+ let onChangeHandler = (val) => this.textInputChangeHandler(fieldKey, String(val));
74
+ if (fieldKey === 'businessDaysAfter') {
75
+ // Only visible if AFTER_BUSINESS_DAYS
76
+ hidden = this.props.schedule !== merchant_constants_1.AUTOMATED_PAYOUT_SCHEDULE.afterBusinessDays;
77
+ // Required only when AFTER_BUSINESS_DAYS; otherwise treat as valid
78
+ if (!hidden) {
79
+ const num = Number(inputValue);
80
+ valid = !isNaN(num) && num > 0 && Number.isInteger(num);
81
+ }
82
+ else {
83
+ valid = true;
84
+ }
85
+ onChangeHandler = (val) => {
86
+ this.fields.businessDaysAfter.inputValue = val;
87
+ const num = Number(val);
88
+ this.fields.businessDaysAfter.valid = !isNaN(num) && num > 0 && Number.isInteger(num);
89
+ };
90
+ }
91
+ return {
92
+ inputValue,
93
+ valid,
94
+ hidden,
95
+ onChangeHandler,
96
+ };
97
+ }
98
+ if (fieldType === 'multiSelect') {
99
+ const selectedValues = this.props[fieldKey] || [];
100
+ const valid = true; // optional field
101
+ const hidden = this.props.enabled !== 'yes';
102
+ const onChangeHandler = (val) => this.multiSelectChangeHandler(fieldKey, val);
103
+ return {
104
+ options,
105
+ selectedValues,
106
+ valid,
107
+ hidden,
108
+ onChangeHandler,
109
+ };
110
+ }
111
+ return { valid: false };
112
+ }
113
+ scheduleSelectHandler(value) {
114
+ const selectedValue = value;
115
+ const valid = value === '' ||
116
+ [merchant_constants_1.AUTOMATED_PAYOUT_SCHEDULE.daily, merchant_constants_1.AUTOMATED_PAYOUT_SCHEDULE.afterBusinessDays].includes(value);
117
+ this.fields.schedule.selectedValue = selectedValue;
118
+ this.fields.schedule.valid = valid;
119
+ // Toggle visibility based on schedule
120
+ // legacy day fields removed
121
+ if (this.fields.businessDaysAfter) {
122
+ this.fields.businessDaysAfter.hidden = value !== merchant_constants_1.AUTOMATED_PAYOUT_SCHEDULE.afterBusinessDays;
123
+ if (value === '' || value === merchant_constants_1.AUTOMATED_PAYOUT_SCHEDULE.daily) {
124
+ this.fields.businessDaysAfter.inputValue = '';
125
+ // Not required when daily; keep valid true to avoid blocking save
126
+ this.fields.businessDaysAfter.valid = true;
127
+ }
128
+ }
129
+ if (this.fields.excludedSellers) {
130
+ this.fields.excludedSellers.hidden = this.fields.enabled.selectedValue !== 'yes';
131
+ }
132
+ }
133
+ enabledSelectHandler(value) {
134
+ this.fields.enabled.selectedValue = value;
135
+ this.fields.enabled.valid = value === 'yes' || value === 'no';
136
+ // If 'no', reset and hide other fields
137
+ if (value === 'no') {
138
+ this.fields.schedule.selectedValue = '';
139
+ this.fields.schedule.valid = true;
140
+ this.fields.schedule.hidden = true;
141
+ if (this.fields.businessDaysAfter) {
142
+ this.fields.businessDaysAfter.inputValue = '';
143
+ this.fields.businessDaysAfter.valid = true;
144
+ this.fields.businessDaysAfter.hidden = true;
145
+ }
146
+ if (this.fields.excludedSellers) {
147
+ this.fields.excludedSellers.selectedValues = [];
148
+ this.fields.excludedSellers.hidden = true;
149
+ this.fields.excludedSellers.valid = true;
150
+ }
151
+ }
152
+ else {
153
+ this.fields.schedule.hidden = false;
154
+ // If schedule is clean/empty, default it to DAILY
155
+ if (!this.fields.schedule.selectedValue) {
156
+ this.fields.schedule.selectedValue = merchant_constants_1.AUTOMATED_PAYOUT_SCHEDULE.daily;
157
+ this.fields.schedule.valid = true;
158
+ if (this.fields.businessDaysAfter) {
159
+ this.fields.businessDaysAfter.inputValue = '';
160
+ this.fields.businessDaysAfter.valid = true;
161
+ this.fields.businessDaysAfter.hidden = true;
162
+ }
163
+ }
164
+ if (this.fields.businessDaysAfter) {
165
+ this.fields.businessDaysAfter.hidden =
166
+ this.fields.schedule.selectedValue !== merchant_constants_1.AUTOMATED_PAYOUT_SCHEDULE.afterBusinessDays;
167
+ }
168
+ if (this.fields.excludedSellers) {
169
+ this.fields.excludedSellers.hidden = false;
170
+ }
171
+ }
172
+ }
173
+ }
174
+ exports.default = MerchantConfigAutomatedPayoutsFormState;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createHash = void 0;
3
+ exports.createHash = createHash;
4
4
  const CryptoJS = require("crypto-js");
5
5
  /**
6
6
  * Polyfill for Node.js crypto module to work in React Native environments
@@ -43,4 +43,3 @@ function createHash(algorithm) {
43
43
  },
44
44
  };
45
45
  }
46
- exports.createHash = createHash;
@@ -446,7 +446,7 @@ class OrderHelpers {
446
446
  creditDiscountPresentment: prepareMoneyObj(creditDiscountAmount),
447
447
  additionalDiscountPresentment: prepareMoneyObj(additionalDiscount),
448
448
  lineItems,
449
- subtotalPricePresentment: prepareMoneyObj(subTotalWithSalePriceIncluded),
449
+ subtotalPricePresentment: prepareMoneyObj(subTotalWithSalePriceIncluded), // This is sum of items with sale prices included minus credits minus additional discount. Calculated with getSubtotalWithSalePriceIncluded()
450
450
  totalDiscountPresentment: prepareMoneyObj(creditDiscountAmount + additionalDiscount),
451
451
  totalShippingPricePresentment: prepareMoneyObj(shippingPrice),
452
452
  itemsTaxPresentment: prepareMoneyObj(itemsTax),
@@ -486,7 +486,7 @@ class OrderHelpers {
486
486
  saleDiscountPresentment: prepareMoneyObj(saleDiscountPresentmentAmount),
487
487
  creditDiscountPresentment: prepareMoneyObj(creditDiscountPresentmentAmount),
488
488
  additionalDiscountPresentment: prepareMoneyObj(additionalDiscountPresentmentAmount),
489
- subtotalPricePresentment: prepareMoneyObj(subtotalPricePresentmentAmount),
489
+ subtotalPricePresentment: prepareMoneyObj(subtotalPricePresentmentAmount), // This is sum of items with sale prices included minus credits minus additional discount
490
490
  totalDiscountPresentment: prepareMoneyObj(Number(creditDiscountPresentmentAmount) + Number(additionalDiscountPresentmentAmount)),
491
491
  totalShippingPricePresentment: prepareMoneyObj(totalShippingPricePresentmentAmount),
492
492
  totalPricePresentment: prepareMoneyObj(Number(subtotalPricePresentmentAmount) + Number(totalShippingPricePresentmentAmount)),
@@ -8,7 +8,7 @@ class SellerProductLedgerHelpers {
8
8
  return {
9
9
  documentId: utilities.makeRandId(28),
10
10
  timestamp: Date.now(),
11
- sellerProductLedgerId: payload.sellerProductLedgerId || '',
11
+ sellerProductLedgerId: payload.sellerProductLedgerId || '', // There should always be a sellerProductLedgerId
12
12
  action: (payload === null || payload === void 0 ? void 0 : payload.action) || SellerProductLedgerActivityLogAction.STATUS_CHANGED_TO_PENDING_RETURN_PERIOD_COMPLETION,
13
13
  details: (payload === null || payload === void 0 ? void 0 : payload.details) || '',
14
14
  actorId: (payload === null || payload === void 0 ? void 0 : payload.actorId) || 'system',
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.singularizeProductType = exports.capitalizeString = exports.getFormattedTimestamp = exports.formatPrice = exports.convertAddressInputToFormatted = exports.getPresentmentLocaleByCurrencyCode = void 0;
3
+ exports.getPresentmentLocaleByCurrencyCode = getPresentmentLocaleByCurrencyCode;
4
+ exports.convertAddressInputToFormatted = convertAddressInputToFormatted;
5
+ exports.formatPrice = formatPrice;
6
+ exports.getFormattedTimestamp = getFormattedTimestamp;
7
+ exports.capitalizeString = capitalizeString;
8
+ exports.singularizeProductType = singularizeProductType;
4
9
  // @ts-ignore
5
10
  const lodash_1 = require("lodash");
6
11
  class Utilities {
@@ -207,7 +212,6 @@ function getPresentmentLocaleByCurrencyCode(currencyCode) {
207
212
  }
208
213
  return presentmentLocale;
209
214
  }
210
- exports.getPresentmentLocaleByCurrencyCode = getPresentmentLocaleByCurrencyCode;
211
215
  function convertAddressInputToFormatted(address) {
212
216
  if (!address) {
213
217
  return '';
@@ -219,27 +223,23 @@ function convertAddressInputToFormatted(address) {
219
223
  const formattedAddress = `${address1}${address2 ? `\n${address2}` : ''}\n${city}${province ? `, ${province}` : ''}, ${zip}, ${country}`;
220
224
  return formattedAddress;
221
225
  }
222
- exports.convertAddressInputToFormatted = convertAddressInputToFormatted;
223
226
  function formatPrice({ currencyCode, amount, fractionDigits = 2, }) {
224
227
  const presentmentLocale = getPresentmentLocaleByCurrencyCode(currencyCode);
225
228
  const priceFormatter = initFormatter(presentmentLocale, currencyCode);
226
229
  const valueToFormat = Number(parseFloat(String(amount)).toFixed(fractionDigits));
227
230
  return priceFormatter.format(valueToFormat);
228
231
  }
229
- exports.formatPrice = formatPrice;
230
232
  function getFormattedTimestamp(locale, timestamp) {
231
233
  const date = timestamp ? new Date(timestamp) : new Date();
232
234
  const hours = String(date.getHours()).padStart(2, '0');
233
235
  const minutes = String(date.getMinutes()).padStart(2, '0');
234
236
  return `${date.toLocaleDateString(locale)} ${hours}:${minutes}`;
235
237
  }
236
- exports.getFormattedTimestamp = getFormattedTimestamp;
237
238
  function capitalizeString(s) {
238
239
  if (typeof s !== 'string')
239
240
  return '';
240
241
  return s.charAt(0).toUpperCase() + s.slice(1);
241
242
  }
242
- exports.capitalizeString = capitalizeString;
243
243
  function singularizeProductType(word) {
244
244
  const irregulars = {
245
245
  Blazers: 'Blazer',
@@ -269,4 +269,3 @@ function singularizeProductType(word) {
269
269
  }
270
270
  return word;
271
271
  }
272
- exports.singularizeProductType = singularizeProductType;
package/lib/index.d.ts CHANGED
@@ -34,7 +34,9 @@ import PayoutAccount from './models/PayoutAccount';
34
34
  import PayoutAccountFormState from './form-states/PayoutAccount/PayoutAccountFormState';
35
35
  import MerchantFormState from './form-states/Merchant/MerchantFormState';
36
36
  import WebhookFormState from './form-states/Merchant/WebhookFormState';
37
+ import MerchantConfigAutomatedPayouts from './models/MerchantConfigAutomatedPayouts';
38
+ import MerchantConfigAutomatedPayoutsFormState from './form-states/Merchant/MerchantConfigAutomatedPayoutsFormState';
37
39
  import ReRobeProductHelpers from './helpers/ReRobeProductHelpers';
38
40
  import AnalyticsHelpers from './helpers/AnalyticsHelpers';
39
41
  import OrderHelpers from './helpers/OrderHelpers';
40
- export { RibbnFile, ProductFromAlgoliaJSONDoc, ProductFromShopifyWebhookJSONDoc, ProductFromShopifyJSClientJSONDoc, ProductFormStateFactory, ProductCollectionFormStateFactory, ProductCollectionHelpers, SellRequestFormStateFactory, PickUpFormStateFactory, AddressFormStateFactory, UserFormStateFactory, UserFromShopifyWebhookJSONDoc, UserFromAuthTemplateMethod, DraftOrderFromMirakl, DraftOrderFromApp, ChatRoomFromNewUserSignUp, KlarnaSessionFactory, Product, ProductStateManager, Order, OrderFromShopifyWebhook, OrderFromShopifyAdminApi, OrderFromShopifyStorefrontApi, OrderFromApp, OrderFormStateFactory, RefundFormStateFactory, PayoutAccount, PayoutAccountFormState, Merchant, MerchantFormState, MerchantFormStateFactory, ReRobeProductHelpers, User, AnalyticsHelpers, OrderHelpers, WebhookFormState, MerchantWebPage, ShopifyMerchantAccount, CustomerNotification, };
42
+ export { RibbnFile, ProductFromAlgoliaJSONDoc, ProductFromShopifyWebhookJSONDoc, ProductFromShopifyJSClientJSONDoc, ProductFormStateFactory, ProductCollectionFormStateFactory, ProductCollectionHelpers, SellRequestFormStateFactory, PickUpFormStateFactory, AddressFormStateFactory, UserFormStateFactory, UserFromShopifyWebhookJSONDoc, UserFromAuthTemplateMethod, DraftOrderFromMirakl, DraftOrderFromApp, ChatRoomFromNewUserSignUp, KlarnaSessionFactory, Product, ProductStateManager, Order, OrderFromShopifyWebhook, OrderFromShopifyAdminApi, OrderFromShopifyStorefrontApi, OrderFromApp, OrderFormStateFactory, RefundFormStateFactory, PayoutAccount, PayoutAccountFormState, Merchant, MerchantFormState, MerchantFormStateFactory, MerchantConfigAutomatedPayouts, MerchantConfigAutomatedPayoutsFormState, ReRobeProductHelpers, User, AnalyticsHelpers, OrderHelpers, WebhookFormState, MerchantWebPage, ShopifyMerchantAccount, CustomerNotification, };
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CustomerNotification = exports.ShopifyMerchantAccount = exports.MerchantWebPage = exports.WebhookFormState = exports.OrderHelpers = exports.AnalyticsHelpers = exports.User = exports.ReRobeProductHelpers = exports.MerchantFormStateFactory = exports.MerchantFormState = exports.Merchant = exports.PayoutAccountFormState = exports.PayoutAccount = exports.RefundFormStateFactory = exports.OrderFormStateFactory = exports.OrderFromApp = exports.OrderFromShopifyStorefrontApi = exports.OrderFromShopifyAdminApi = exports.OrderFromShopifyWebhook = exports.Order = exports.ProductStateManager = exports.Product = exports.KlarnaSessionFactory = exports.ChatRoomFromNewUserSignUp = exports.DraftOrderFromApp = exports.DraftOrderFromMirakl = exports.UserFromAuthTemplateMethod = exports.UserFromShopifyWebhookJSONDoc = exports.UserFormStateFactory = exports.AddressFormStateFactory = exports.PickUpFormStateFactory = exports.SellRequestFormStateFactory = exports.ProductCollectionHelpers = exports.ProductCollectionFormStateFactory = exports.ProductFormStateFactory = exports.ProductFromShopifyJSClientJSONDoc = exports.ProductFromShopifyWebhookJSONDoc = exports.ProductFromAlgoliaJSONDoc = exports.RibbnFile = void 0;
3
+ exports.CustomerNotification = exports.ShopifyMerchantAccount = exports.MerchantWebPage = exports.WebhookFormState = exports.OrderHelpers = exports.AnalyticsHelpers = exports.User = exports.ReRobeProductHelpers = exports.MerchantConfigAutomatedPayoutsFormState = exports.MerchantConfigAutomatedPayouts = exports.MerchantFormStateFactory = exports.MerchantFormState = exports.Merchant = exports.PayoutAccountFormState = exports.PayoutAccount = exports.RefundFormStateFactory = exports.OrderFormStateFactory = exports.OrderFromApp = exports.OrderFromShopifyStorefrontApi = exports.OrderFromShopifyAdminApi = exports.OrderFromShopifyWebhook = exports.Order = exports.ProductStateManager = exports.Product = exports.KlarnaSessionFactory = exports.ChatRoomFromNewUserSignUp = exports.DraftOrderFromApp = exports.DraftOrderFromMirakl = exports.UserFromAuthTemplateMethod = exports.UserFromShopifyWebhookJSONDoc = exports.UserFormStateFactory = exports.AddressFormStateFactory = exports.PickUpFormStateFactory = exports.SellRequestFormStateFactory = exports.ProductCollectionHelpers = exports.ProductCollectionFormStateFactory = exports.ProductFormStateFactory = exports.ProductFromShopifyJSClientJSONDoc = exports.ProductFromShopifyWebhookJSONDoc = exports.ProductFromAlgoliaJSONDoc = exports.RibbnFile = void 0;
4
4
  const ProductFromShopifyJSClientJSONDoc_1 = require("./factories/Product/ProductFromShopifyJSClientJSONDoc");
5
5
  exports.ProductFromShopifyJSClientJSONDoc = ProductFromShopifyJSClientJSONDoc_1.default;
6
6
  const ProductFromAlgoliaJSONDoc_1 = require("./factories/Product/ProductFromAlgoliaJSONDoc");
@@ -73,6 +73,10 @@ const MerchantFormState_1 = require("./form-states/Merchant/MerchantFormState");
73
73
  exports.MerchantFormState = MerchantFormState_1.default;
74
74
  const WebhookFormState_1 = require("./form-states/Merchant/WebhookFormState");
75
75
  exports.WebhookFormState = WebhookFormState_1.default;
76
+ const MerchantConfigAutomatedPayouts_1 = require("./models/MerchantConfigAutomatedPayouts");
77
+ exports.MerchantConfigAutomatedPayouts = MerchantConfigAutomatedPayouts_1.default;
78
+ const MerchantConfigAutomatedPayoutsFormState_1 = require("./form-states/Merchant/MerchantConfigAutomatedPayoutsFormState");
79
+ exports.MerchantConfigAutomatedPayoutsFormState = MerchantConfigAutomatedPayoutsFormState_1.default;
76
80
  const ReRobeProductHelpers_1 = require("./helpers/ReRobeProductHelpers");
77
81
  exports.ReRobeProductHelpers = ReRobeProductHelpers_1.default;
78
82
  const AnalyticsHelpers_1 = require("./helpers/AnalyticsHelpers");
@@ -157,7 +157,6 @@ class Merchant extends Base_1.default {
157
157
  };
158
158
  }
159
159
  }
160
- exports.default = Merchant;
161
160
  Merchant.MERCHANT_TYPES = merchant_constants_1.MERCHANT_TYPES;
162
161
  Merchant.PAYMENT_TIERS = merchant_constants_1.PAYMENT_TIERS;
163
162
  Merchant.INDUSTRY_TYPES = merchant_constants_1.INDUSTRY_TYPES;
@@ -165,3 +164,4 @@ Merchant.UNIT_SYSTEM_TYPES = merchant_constants_1.UNIT_SYSTEM_TYPES;
165
164
  Merchant.METRIC_WEIGHT_TYPES = merchant_constants_1.METRIC_WEIGHT_TYPES;
166
165
  Merchant.IMPERIAL_WEIGHT_TYPES = merchant_constants_1.IMPERIAL_WEIGHT_TYPES;
167
166
  Merchant.RIBBN_WEBHOOK_EVENT_DICT = merchant_constants_1.RIBBN_WEBHOOK_EVENT_DICT;
167
+ exports.default = Merchant;
@@ -0,0 +1,13 @@
1
+ import Base from '../Base';
2
+ export default class MerchantConfigAutomatedPayouts extends Base {
3
+ enabled: EnabledChoice;
4
+ schedule: AutomatedPayoutSchedule | '';
5
+ businessDaysAfter?: number | null;
6
+ excludedSellers?: ExcludedSeller[];
7
+ createdAt?: string;
8
+ updatedAt?: string;
9
+ createdAtTimestamp?: number | null;
10
+ updatedAtTimestamp?: number | null;
11
+ constructor(props?: any);
12
+ toObj(): MerchantConfigAutomatedPayoutsObj;
13
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Base_1 = require("../Base");
4
+ class MerchantConfigAutomatedPayouts extends Base_1.default {
5
+ constructor(props) {
6
+ super();
7
+ this.enabled = (props === null || props === void 0 ? void 0 : props.enabled) || 'no';
8
+ this.schedule = (props === null || props === void 0 ? void 0 : props.schedule) || '';
9
+ this.businessDaysAfter = (props === null || props === void 0 ? void 0 : props.businessDaysAfter) != null ? Number(props === null || props === void 0 ? void 0 : props.businessDaysAfter) : null;
10
+ this.excludedSellers = Array.isArray(props === null || props === void 0 ? void 0 : props.excludedSellers)
11
+ ? props.excludedSellers.map((s) => ({
12
+ vendorId: String((s === null || s === void 0 ? void 0 : s.vendorId) || ''),
13
+ firstName: (s === null || s === void 0 ? void 0 : s.firstName) || (s === null || s === void 0 ? void 0 : s.sellerFirstName) || undefined,
14
+ lastName: (s === null || s === void 0 ? void 0 : s.lastName) || (s === null || s === void 0 ? void 0 : s.sellerLastName) || undefined,
15
+ email: (s === null || s === void 0 ? void 0 : s.email) || (s === null || s === void 0 ? void 0 : s.sellerEmail) || undefined,
16
+ }))
17
+ : [];
18
+ this.createdAt = (props === null || props === void 0 ? void 0 : props.createdAt) || '';
19
+ this.updatedAt = (props === null || props === void 0 ? void 0 : props.updatedAt) || '';
20
+ this.createdAtTimestamp = (props === null || props === void 0 ? void 0 : props.createdAtTimestamp) ? Number(props === null || props === void 0 ? void 0 : props.createdAtTimestamp) : null;
21
+ this.updatedAtTimestamp = (props === null || props === void 0 ? void 0 : props.updatedAtTimestamp) ? Number(props === null || props === void 0 ? void 0 : props.updatedAtTimestamp) : null;
22
+ }
23
+ toObj() {
24
+ var _a, _b;
25
+ return {
26
+ enabled: this.enabled,
27
+ schedule: this.schedule,
28
+ businessDaysAfter: this.businessDaysAfter != null ? Number(this.businessDaysAfter) : null,
29
+ excludedSellers: Array.isArray(this.excludedSellers)
30
+ ? this.excludedSellers.map((s) => ({
31
+ vendorId: s.vendorId,
32
+ firstName: s.firstName,
33
+ lastName: s.lastName,
34
+ email: s.email,
35
+ }))
36
+ : [],
37
+ createdAt: this.createdAt,
38
+ updatedAt: this.updatedAt,
39
+ createdAtTimestamp: (_a = this.createdAtTimestamp) !== null && _a !== void 0 ? _a : null,
40
+ updatedAtTimestamp: (_b = this.updatedAtTimestamp) !== null && _b !== void 0 ? _b : null,
41
+ };
42
+ }
43
+ }
44
+ exports.default = MerchantConfigAutomatedPayouts;
@@ -418,10 +418,10 @@ class Order extends Base_1.default {
418
418
  return stagedObj;
419
419
  }
420
420
  }
421
- exports.default = Order;
422
421
  Order.SHIPPING_TYPES = order_constants_1.SHIPPING_TYPES;
423
422
  Order.PAYMENT_TYPES = order_constants_1.PAYMENT_TYPES;
424
423
  Order.ORDER_STATES = order_constants_1.ORDER_STATES;
425
424
  Order.SALES_CHANNELS = order_constants_1.SALES_CHANNELS;
426
425
  Order.FULFILLMENT_TYPES = order_constants_1.FULFILLMENT_TYPES;
427
426
  Order.FINANCIAL_TYPES = order_constants_1.FINANCIAL_TYPES;
427
+ exports.default = Order;
@@ -57,7 +57,6 @@ class PayoutAccount extends Base_1.default {
57
57
  return '';
58
58
  }
59
59
  }
60
- exports.default = PayoutAccount;
61
60
  PayoutAccount.PAYOUT_TYPES = {
62
61
  bankTransfer: 'bank-transfer',
63
62
  paypal: 'paypal',
@@ -65,3 +64,4 @@ PayoutAccount.PAYOUT_TYPES = {
65
64
  mobileMoney: 'mobile-money',
66
65
  debitCard: 'debit-card',
67
66
  };
67
+ exports.default = PayoutAccount;
@@ -47,9 +47,9 @@ class Product extends Base_1.default {
47
47
  brand: (props === null || props === void 0 ? void 0 : props.brand) || '',
48
48
  color: (props === null || props === void 0 ? void 0 : props.color) || '',
49
49
  gender: (props === null || props === void 0 ? void 0 : props.gender) || '',
50
- clothingSize: (props === null || props === void 0 ? void 0 : props.clothingSize) || [],
51
- jeanSize: (props === null || props === void 0 ? void 0 : props.jeanSize) || '',
52
- shoeSize: (props === null || props === void 0 ? void 0 : props.shoeSize) || '',
50
+ clothingSize: (props === null || props === void 0 ? void 0 : props.clothingSize) || [], // Will be deprecated in a future release
51
+ jeanSize: (props === null || props === void 0 ? void 0 : props.jeanSize) || '', // Will be deprecated in a future release
52
+ shoeSize: (props === null || props === void 0 ? void 0 : props.shoeSize) || '', // Will be deprecated in a future release
53
53
  size: (props === null || props === void 0 ? void 0 : props.size) || '',
54
54
  standardSize: this.utilities.sanitizeString(props === null || props === void 0 ? void 0 : props.standardSize) || '',
55
55
  internationalSize: this.utilities.sanitizeString(props === null || props === void 0 ? void 0 : props.internationalSize) || '',
@@ -90,8 +90,8 @@ class Product extends Base_1.default {
90
90
  selectedForClearance: (props === null || props === void 0 ? void 0 : props.selectedForClearance) || '',
91
91
  locationIds: (props === null || props === void 0 ? void 0 : props.locationIds) || [],
92
92
  inventoryLocations: this.validateInventoryLocation(props === null || props === void 0 ? void 0 : props.inventoryLocations) || [],
93
- majorDefects: (props === null || props === void 0 ? void 0 : props.majorDefects) || [],
94
- minorDefects: (props === null || props === void 0 ? void 0 : props.minorDefects) || [],
93
+ majorDefects: (props === null || props === void 0 ? void 0 : props.majorDefects) || [], // ToDo: Deprecate
94
+ minorDefects: (props === null || props === void 0 ? void 0 : props.minorDefects) || [], // ToDo: Deprecate,
95
95
  careInstructions: (props === null || props === void 0 ? void 0 : props.careInstructions) || '',
96
96
  };
97
97
  this.timestampAttributes = {
@@ -151,7 +151,11 @@ class Product extends Base_1.default {
151
151
  return Object.assign(Object.assign({}, this.attributes), this.filterAttributes);
152
152
  } // ToDo: Deprecate soon
153
153
  toObj() {
154
- return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, this.attributes), this.filterAttributes), this.consignmentAttributes), this.timestampAttributes), this.payoutAttributes);
154
+ const obj = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, this.attributes), this.filterAttributes), this.consignmentAttributes), this.timestampAttributes), this.payoutAttributes);
155
+ if ((obj === null || obj === void 0 ? void 0 : obj.inventoryLocations) && Array.isArray(obj.inventoryLocations)) {
156
+ obj.inventoryLocations = obj.inventoryLocations.map((loc) => (Object.assign(Object.assign({}, loc), { availableAmount: Number(loc === null || loc === void 0 ? void 0 : loc.availableAmount) || 0, incomingAmount: Number(loc === null || loc === void 0 ? void 0 : loc.incomingAmount) || 0 })));
157
+ }
158
+ return obj;
155
159
  }
156
160
  toProductInputObjForShopify(location) {
157
161
  const productInputObj = {
@@ -263,7 +267,7 @@ class Product extends Base_1.default {
263
267
  },
264
268
  sku: this.attributes.sku,
265
269
  price: this.attributes.price || '0',
266
- taxable: false,
270
+ taxable: false, // ToDo: Add this back in
267
271
  weight: parseFloat(this.attributes.weight) || parseFloat('999'),
268
272
  weightUnit: weightUnit || 'GRAMS',
269
273
  },
@@ -409,8 +413,8 @@ class Product extends Base_1.default {
409
413
  Array.isArray((_b = this.consignmentAttributes) === null || _b === void 0 ? void 0 : _b.inventoryLocations)) {
410
414
  this.consignmentAttributes.inventoryLocations.forEach((l) => {
411
415
  if (l.id) {
412
- stagedObj[`inventoryLocations.${l.id}.availableAmount`] = (l === null || l === void 0 ? void 0 : l.availableAmount) || 0;
413
- stagedObj[`inventoryLocations.${l.id}.incomingAmount`] = (l === null || l === void 0 ? void 0 : l.incomingAmount) || 0;
416
+ stagedObj[`inventoryLocations.${l.id}.availableAmount`] = Number(l === null || l === void 0 ? void 0 : l.availableAmount) || 0;
417
+ stagedObj[`inventoryLocations.${l.id}.incomingAmount`] = Number(l === null || l === void 0 ? void 0 : l.incomingAmount) || 0;
414
418
  }
415
419
  });
416
420
  }
@@ -1171,8 +1175,8 @@ class Product extends Base_1.default {
1171
1175
  return {
1172
1176
  id: v.id,
1173
1177
  name: v.name,
1174
- availableAmount: (v === null || v === void 0 ? void 0 : v.availableAmount) || 0,
1175
- incomingAmount: (v === null || v === void 0 ? void 0 : v.incomingAmount) || 0,
1178
+ availableAmount: Number(v === null || v === void 0 ? void 0 : v.availableAmount) || 0,
1179
+ incomingAmount: Number(v === null || v === void 0 ? void 0 : v.incomingAmount) || 0,
1176
1180
  };
1177
1181
  });
1178
1182
  }
@@ -29,7 +29,7 @@ class ProductCollection extends Base_1.default {
29
29
  subTitle: this.subTitle,
30
30
  description: this.description,
31
31
  type: this.type,
32
- imgUrl: this.imgUrl,
32
+ imgUrl: this.imgUrl, // deprecate soon, will be migrated into imageUrls
33
33
  refinements: this.refinements,
34
34
  tags: this.tags,
35
35
  collectionId: this.collectionId,
@@ -207,7 +207,7 @@ class ProductCollection extends Base_1.default {
207
207
  subTitle: this.utilities.sanitizeString(this.subTitle),
208
208
  description: this.utilities.sanitizeString(this.description),
209
209
  type: this.utilities.sanitizeString(this.type),
210
- imgUrl: this.utilities.sanitizeString(this.imgUrl),
210
+ imgUrl: this.utilities.sanitizeString(this.imgUrl), // deprecate soon, will be migrated into imageUrls
211
211
  'refinements.brandRefinement': this.utilities.sanitzeStringArr(this.refinements.brandRefinement),
212
212
  'refinements.clothingSizeRefinement': this.utilities.sanitzeStringArr(this.refinements.clothingSizeRefinement),
213
213
  'refinements.colorRefinement': this.utilities.sanitzeStringArr(this.refinements.colorRefinement),
@@ -78,5 +78,5 @@ class ProductStateManager extends Base_1.default {
78
78
  return (this.state.getVal() === product_constants_1.PRODUCT_STATES.shoppingBag || this.state.getVal() === product_constants_1.PRODUCT_STATES.reservationQueue);
79
79
  }
80
80
  }
81
- exports.default = ProductStateManager;
82
81
  ProductStateManager.PRODUCT_STATES = product_constants_1.PRODUCT_STATES;
82
+ exports.default = ProductStateManager;
@@ -144,12 +144,12 @@ declare enum SaleType {
144
144
  DIRECT_SALE = "DIRECT_SALE"
145
145
  }
146
146
  declare enum SellerProductLedgerStatus {
147
- PENDING_RETURN_PERIOD_COMPLETION = "PENDING_RETURN_PERIOD_COMPLETION",
148
- RETURNED_AND_RELISTED = "RETURNED_AND_RELISTED",
149
- SELLER_LIQUIDATED = "SELLER_LIQUIDATED",
150
- MERCHANT_DONATED = "MERCHANT_DONATED",
151
- SELLER_TO_BE_PAID = "SELLER_TO_BE_PAID",
152
- PAYMENT_IN_PROGRESS = "PAYMENT_IN_PROGRESS",
147
+ PENDING_RETURN_PERIOD_COMPLETION = "PENDING_RETURN_PERIOD_COMPLETION",// Order is created => each item in order should get created (or logged if already created); Admin can also add to ledger from Products Table Action
148
+ RETURNED_AND_RELISTED = "RETURNED_AND_RELISTED",// Merchant will be the actor to move ledgerEntity to this state once item has cleared the return period. We can set up scheduledFunctionToTagSellerProductLedgerEntities to tag ledger entities on how long ago the item sold and how long it's been in return period
149
+ SELLER_LIQUIDATED = "SELLER_LIQUIDATED",// Item was returned and relisted but then seller decides to take item back. In this case, item amount owed to seller goes to zero
150
+ MERCHANT_DONATED = "MERCHANT_DONATED",// Item was returned and relisted but merchant decides to donate item and seller does not want it back. In this case, item amount owed to seller goes to zero
151
+ SELLER_TO_BE_PAID = "SELLER_TO_BE_PAID",// From here
152
+ PAYMENT_IN_PROGRESS = "PAYMENT_IN_PROGRESS",// to here is when fees would be added in Admin UI
153
153
  SELLER_PAID = "SELLER_PAID",
154
154
  DISPUTED = "DISPUTED",
155
155
  RESOLVED = "RESOLVED",
@@ -0,0 +1,24 @@
1
+ type AutomatedPayoutSchedule = 'DAILY' | 'AFTER_BUSINESS_DAYS';
2
+ type EnabledChoice = 'yes' | 'no';
3
+ type ExcludedSeller = {
4
+ vendorId: string;
5
+ firstName?: string;
6
+ lastName?: string;
7
+ email?: string;
8
+ };
9
+ type MerchantConfigAutomatedPayoutsObj = {
10
+ enabled: EnabledChoice;
11
+ schedule: AutomatedPayoutSchedule | '';
12
+ businessDaysAfter?: number | null;
13
+ excludedSellers?: ExcludedSeller[];
14
+ createdAt?: string;
15
+ updatedAt?: string;
16
+ createdAtTimestamp?: number | null;
17
+ updatedAtTimestamp?: number | null;
18
+ };
19
+ type MerchantConfigAutomatedPayoutsFormFields = {
20
+ enabled: SingleSelectFormField<EnabledChoice>;
21
+ schedule: SingleSelectFormField<AutomatedPayoutSchedule | ''>;
22
+ businessDaysAfter: TextInputFormField<string>;
23
+ excludedSellers: MultiSelectFormField<ExcludedSeller>;
24
+ };
@@ -0,0 +1 @@
1
+ "use strict";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rerobe-js-orm",
3
- "version": "4.4.6",
3
+ "version": "4.4.8",
4
4
  "description": "ReRobe's Javascript ORM Framework",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -29,14 +29,14 @@
29
29
  "homepage": "https://github.com/ReRobe/rerobe-product#readme",
30
30
  "devDependencies": {
31
31
  "@types/crypto-js": "^4.2.2",
32
- "@types/jest": "^26.0.23",
32
+ "@types/jest": "^29.5.12",
33
33
  "@types/slug": "^5.0.9",
34
- "jest": "^26.6.3",
34
+ "jest": "^29.7.0",
35
35
  "prettier": "^2.3.0",
36
- "ts-jest": "^26.5.6",
36
+ "ts-jest": "^29.2.5",
37
37
  "tslint": "^6.1.3",
38
38
  "tslint-config-prettier": "^1.18.0",
39
- "typescript": "^4.2.4"
39
+ "typescript": "^5.6.0"
40
40
  },
41
41
  "files": [
42
42
  "lib/**/*"