piper-utils 1.1.65 → 1.1.66

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/bin/main.js CHANGED
@@ -7,6 +7,35 @@
7
7
  /***/},
8
8
  /***/59(module){module.exports=require("dayjs/plugin/customParseFormat");
9
9
  /***/},
10
+ /***/62(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0}),exports.ensurePartnerScope=
11
+ /**
12
+ * Lazy-load partner scope from Dynamo. Populates partnerBusinessId and
13
+ * businessIds on the access object, then caches for the request lifetime.
14
+ *
15
+ * No-op for non-partner access objects or if already loaded.
16
+ *
17
+ * @param {object} access - Access object from resolveAccess.
18
+ * @param {{ getPartnerById: Function }} deps - Injected so piper-utils stays DB-agnostic.
19
+ * @returns {object} The same access object, now populated.
20
+ */
21
+ async function ensurePartnerScope(access,{getPartnerById}){if(!access||"partner"!==access.level)return access;if(null!==access.businessIds&&void 0!==access.businessIds)return access;try{const partner=await getPartnerById(access.partnerId);access.businessIds=partner?.businessIds||[],access.partnerBusinessId=partner?.partnerBusinessId||null}catch(err){console.error("partnerAccess: failed to load partner for scoping:",err),access.businessIds=[],access.partnerBusinessId=null}return access}
22
+ /***/,exports.resolveAccess=
23
+ /**
24
+ * Resolve the caller's access level from the Lambda event.
25
+ * Synchronous — reads JWT claims only, no Dynamo lookups.
26
+ *
27
+ * Returns an access object:
28
+ * { level: 'global' } — super user or local/test env
29
+ * { level: 'partner', partnerId, partnerBusinessId: null, businessIds: null }
30
+ * { level: 'standard', businessIds: string[] }
31
+ *
32
+ * Partner fields (partnerBusinessId, businessIds) start null and are
33
+ * lazy-loaded by ensurePartnerScope on first use.
34
+ *
35
+ * @param {object} event - Lambda event with Cognito authorizer claims.
36
+ * @returns {object} Access object.
37
+ */
38
+ function resolveAccess(event){if((0,_accessRightsUtils.isSuperUser)(event))return{level:"global"};const env=process.env.BUILD_ENV;if("local"===env||"test"===env)return{level:"global"};const partnerId=(0,_accessRightsUtils.isPartnerUser)(event);if(partnerId)return{level:"partner",partnerId,partnerBusinessId:null,businessIds:null};const arBusinessIds=(0,_accessRightsUtils.getAccessRightsInfo)(event),businessIds=Object.keys(arBusinessIds);if(businessIds.length>0)return{level:"standard",businessIds};throw _errorCodes.errorList.unauthorized};var _accessRightsUtils=__webpack_require__(673),_errorCodes=__webpack_require__(953)},
10
39
  /***/64(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _libDynamodb=__webpack_require__(515),_clientDynamodb=__webpack_require__(929);const dynamoUtil={get:params=>
11
40
  /**
12
41
  * @param {{TableName:string, Key:{key:string}}} params
@@ -17,6 +46,55 @@ async function get(params){return _libDynamodb.DynamoDBDocument.from(new _client
17
46
  /***/,exports.handleEvents=function handleEvents(event,transformer,errorHandlerPerFile,shouldSkipFailedFolders=!1,userImportTypes){if(!event||!event.Records)return _bluebird.default.resolve();let hasErrors=!1;return _bluebird.default.map(event.Records,record=>{const snsInfo=JSON.parse(_lodash.default.get(record,"Sns.Message","{}")),s3Bucket=snsInfo.bucket,files=snsInfo.files||[];return _bluebird.default.map(files,file=>{let path=decodeURIComponent(file);if(path)return(0,_handleFile.handleFile)(path,s3Bucket,transformer,{shouldSkipFailedFolders,userImportTypes}).catch(err=>{errorHandlerPerFile&&!errorHandlerPerFile(err,path)&&(console.error("HANDLE-FILE-CATCH: ",err),hasErrors=!0)})})}).then(()=>{if(hasErrors)throw new Error("ERROR: HANDLE-FILE")})};var _handleFile=__webpack_require__(876),_lodash=_interopRequireDefault(__webpack_require__(825)),_bluebird=_interopRequireDefault(__webpack_require__(564));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},
18
47
  /***/137(module){module.exports=require("dayjs/plugin/utc.js");
19
48
  /***/},
49
+ /***/165(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0}),exports.assertCanWriteBookBusiness=
50
+ /**
51
+ * Assert the caller can write to a business in their portfolio.
52
+ * For partner: businessId must be in the businessIds array.
53
+ *
54
+ * global → allow
55
+ * standard → allow (handled elsewhere via checkWriteAccess)
56
+ * partner → businessId must be in portfolio; throws if not
57
+ *
58
+ * @param {object} access - Access object from resolveAccess.
59
+ * @param {string} businessId - The businessId being written to.
60
+ * @param {{ getPartnerById: Function }} deps
61
+ */
62
+ async function assertCanWriteBookBusiness(access,businessId,{getPartnerById}={}){if(!access)throw _errorCodes.errorList.unauthorized;if("global"===access.level)return;if("standard"===access.level)return;if("partner"===access.level){if(!businessId)throw{..._errorCodes.errorList.invalidRequest,message:"businessId is required"};if(await(0,_accessContext.ensurePartnerScope)(access,{getPartnerById}),!(access.businessIds||[]).includes(businessId))throw _errorCodes.errorList.unauthorized;return}throw _errorCodes.errorList.unauthorized}
63
+ /**
64
+ * Assert the caller can write to a business in the union of own + portfolio.
65
+ * For partner: businessId must be partnerBusinessId OR in businessIds[].
66
+ * Used by ticket write paths.
67
+ *
68
+ * global → allow
69
+ * standard → allow (handled elsewhere via checkWriteAccess)
70
+ * partner → businessId must be in [partnerBusinessId, ...businessIds]
71
+ *
72
+ * @param {object} access - Access object from resolveAccess.
73
+ * @param {string} businessId - The businessId being written to.
74
+ * @param {{ getPartnerById: Function }} deps
75
+ */,exports.assertCanWriteBookUnionOwn=async function assertCanWriteBookUnionOwn(access,businessId,{getPartnerById}={}){if(!access)throw _errorCodes.errorList.unauthorized;if("global"===access.level)return;if("standard"===access.level)return;if("partner"===access.level){if(!businessId)throw{..._errorCodes.errorList.invalidRequest,message:"businessId is required"};await(0,_accessContext.ensurePartnerScope)(access,{getPartnerById});if(!_lodash.default.uniq([access.partnerBusinessId,...access.businessIds||[]].filter(Boolean)).includes(businessId))throw _errorCodes.errorList.unauthorized;return}throw _errorCodes.errorList.unauthorized}
76
+ /**
77
+ * Auto-stamp body.businessId from the partner's own business if missing.
78
+ * No-op for non-partner users or if body.businessId is already set.
79
+ *
80
+ * @param {object} access - Access object from resolveAccess.
81
+ * @param {object} body - Request body to mutate.
82
+ * @param {{ getPartnerById: Function }} deps
83
+ */,exports.assertCanWriteOwnBusiness=
84
+ /**
85
+ * Assert the caller can write to their own business.
86
+ * For partner: businessId must equal partnerBusinessId.
87
+ *
88
+ * global → allow
89
+ * partner → businessId must equal partnerBusinessId; throws if not
90
+ * standard → throws (CRM routes gate standard users before reaching this)
91
+ *
92
+ * @param {object} access - Access object from resolveAccess.
93
+ * @param {string} businessId - The businessId being written to.
94
+ * @param {{ getPartnerById: Function }} deps
95
+ */
96
+ async function assertCanWriteOwnBusiness(access,businessId,{getPartnerById}={}){if(!access)throw _errorCodes.errorList.unauthorized;if("global"===access.level)return;if("partner"===access.level){if(await(0,_accessContext.ensurePartnerScope)(access,{getPartnerById}),!access.partnerBusinessId)throw{..._errorCodes.errorList.partnerNotConfigured};if(businessId!==access.partnerBusinessId)throw _errorCodes.errorList.unauthorized;return}throw _errorCodes.errorList.unauthorized},exports.stampOwnBusinessId=async function stampOwnBusinessId(access,body,{getPartnerById}={}){if(!access||"partner"!==access.level)return;if(body.businessId)return;await(0,_accessContext.ensurePartnerScope)(access,{getPartnerById}),body.businessId=access.partnerBusinessId}
97
+ /***/;var _lodash=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}(__webpack_require__(825)),_accessContext=__webpack_require__(62),_errorCodes=__webpack_require__(953)},
20
98
  /***/183(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0}),exports.watchBucket=
21
99
  /**
22
100
  * bucket watcher watches a s3 bucket and publishes events to a sns topic, this allows you to process files in s3 with a some transformer function
@@ -39,6 +117,22 @@ return(0,_publishEvents.publishEvents)(dynamoConfigTable,dynamoConfigKey,s3Bucke
39
117
  // this used to throw, but the throw raised useless alarms, I believed turing throw in to a return was ok
40
118
  return;if(startsWithDirect)return console.log("-------\x3eDIRECT WRITE FIRE"),(0,_handleEvents.handleDirectS3WriteEvent)(event,transformer,errorHandlerPerFile,shouldSkipFailedFolders,userImportTypes)}}
41
119
  /***/;var _publishEvents=__webpack_require__(864),_handleEvents=__webpack_require__(95),_lodash=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}(__webpack_require__(825))},
120
+ /***/189(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0}),exports.requireCrmAccess=
121
+ /**
122
+ * Gate: CRM routes — rejects standard users. Super and partner pass.
123
+ * @param {object} access - Access object from resolveAccess.
124
+ */
125
+ function requireCrmAccess(access){if(!access)throw _errorCodes.errorList.unauthorized;if("standard"===access.level)throw _errorCodes.errorList.unauthorized}
126
+ /**
127
+ * Gate: Ticket routes — all three user types pass. Only rejects null access.
128
+ * @param {object} access - Access object from resolveAccess.
129
+ */,exports.requireSuper=
130
+ /**
131
+ * Gate: Super-only routes — throws unless global.
132
+ * @param {object} access - Access object from resolveAccess.
133
+ */
134
+ function requireSuper(access){if(!access||"global"!==access.level)throw _errorCodes.errorList.unauthorized}
135
+ /***/,exports.requireTicketAccess=function requireTicketAccess(access){if(!access)throw _errorCodes.errorList.unauthorized};var _errorCodes=__webpack_require__(953)},
42
136
  /***/207(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0}),exports.addFiltersFromSchema=addFiltersFromSchema,exports.defaultFilters=
43
137
  /**
44
138
  * Create an object with default filters for a given sequeliaze Schema Object, and set of sub schemas
@@ -156,8 +250,74 @@ let parsed;try{parsed=JSON.parse(query[qKey])}catch(e){return}if(parsed&&"object
156
250
  /***/},
157
251
  /***/394(module){module.exports=require("dayjs/plugin/isSameOrBefore");
158
252
  /***/},
253
+ /***/513(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0}),exports.scopeToBookUnionOwn=
254
+ /**
255
+ * Scope to the union of partnerBusinessId + businessIds.
256
+ * Use for tickets — partner sees own tickets + portfolio merchants' tickets.
257
+ *
258
+ * global → deletes where.businessId
259
+ * partner → sets where.businessId = [partnerBusinessId, ...businessIds]
260
+ * standard → sets where.businessId = access.businessIds
261
+ * (explicitly handled here because ticket routes may not call
262
+ * createFilters before scoping, e.g. delete/resolve handlers)
263
+ *
264
+ * @param {object} where - Sequelize WHERE clause to mutate.
265
+ * @param {object} access - Access object from resolveAccess.
266
+ * @param {{ getPartnerById: Function }} deps
267
+ */
268
+ async function scopeToBookUnionOwn(where,access,{getPartnerById}={}){if(!access)throw _errorCodes.errorList.unauthorized;if("global"===access.level)return void delete where.businessId;if("partner"===access.level){await(0,_accessContext.ensurePartnerScope)(access,{getPartnerById});const ids=_lodash.default.uniq([access.partnerBusinessId,...access.businessIds||[]].filter(Boolean));return void(where.businessId=ids)}if("standard"===access.level)return void(where.businessId=access.businessIds)}
269
+ /***/,exports.scopeToOwnBusiness=
270
+ /**
271
+ * Scope a WHERE clause to the partner's own business (partnerBusinessId).
272
+ * Use for "mine" resources: deal, activity, application, template.
273
+ *
274
+ * global → deletes where.businessId (super sees everything)
275
+ * partner → sets where.businessId = partnerBusinessId
276
+ * throws partnerNotConfigured if partnerBusinessId is missing
277
+ * standard → no-op (createFilters already handled)
278
+ *
279
+ * @param {object} where - Sequelize WHERE clause to mutate.
280
+ * @param {object} access - Access object from resolveAccess.
281
+ * @param {{ getPartnerById: Function }} deps
282
+ */
283
+ async function scopeToOwnBusiness(where,access,{getPartnerById}={}){if(!access)throw _errorCodes.errorList.unauthorized;if("global"===access.level)return void delete where.businessId;if("partner"===access.level){if(await(0,_accessContext.ensurePartnerScope)(access,{getPartnerById}),!access.partnerBusinessId)throw _errorCodes.errorList.partnerNotConfigured;return void(where.businessId=access.partnerBusinessId)}
284
+ // standard → no-op (createFilters already injected from JWT)
285
+ }
286
+ /**
287
+ * Scope a WHERE clause to the partner's portfolio (businessIds array).
288
+ * Use for "book" resources (future transaction lists, merchant inbox views).
289
+ *
290
+ * global → deletes where.businessId
291
+ * partner → sets where.businessId = businessIds[]
292
+ * standard → no-op
293
+ *
294
+ * @param {object} where - Sequelize WHERE clause to mutate.
295
+ * @param {object} access - Access object from resolveAccess.
296
+ * @param {{ getPartnerById: Function }} deps
297
+ */,exports.scopeToPartnerBook=async function scopeToPartnerBook(where,access,{getPartnerById}={}){if(!access)throw _errorCodes.errorList.unauthorized;if("global"===access.level)return void delete where.businessId;if("partner"===access.level)return await(0,_accessContext.ensurePartnerScope)(access,{getPartnerById}),void(where.businessId=access.businessIds||[]);
298
+ // standard → no-op
299
+ };var _lodash=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}(__webpack_require__(825)),_accessContext=__webpack_require__(62),_errorCodes=__webpack_require__(953)},
159
300
  /***/515(module){module.exports=require("@aws-sdk/lib-dynamodb");
160
301
  /***/},
302
+ /***/539(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0}),exports.createAccessHelpers=
303
+ /**
304
+ * Factory that pre-binds getPartnerById into all scope/assert/stamp helpers.
305
+ * Bind once at module level, then call without repeating the injection:
306
+ *
307
+ * import { createAccessHelpers } from 'piper-utils';
308
+ * import { getPartnerById } from '../partner/partner.js';
309
+ *
310
+ * const {
311
+ * scopeToOwnBusiness,
312
+ * stampOwnBusinessId,
313
+ * assertCanWriteOwnBusiness
314
+ * } = createAccessHelpers({ getPartnerById });
315
+ *
316
+ * @param {{ getPartnerById: Function }} deps
317
+ * @returns {object} Pre-bound helpers.
318
+ */
319
+ function createAccessHelpers({getPartnerById}){const deps={getPartnerById};return{ensurePartnerScope:access=>(0,_accessContext.ensurePartnerScope)(access,deps),scopeToOwnBusiness:(where,access)=>(0,_accessScope.scopeToOwnBusiness)(where,access,deps),scopeToPartnerBook:(where,access)=>(0,_accessScope.scopeToPartnerBook)(where,access,deps),scopeToBookUnionOwn:(where,access)=>(0,_accessScope.scopeToBookUnionOwn)(where,access,deps),assertCanWriteOwnBusiness:(access,businessId)=>(0,_accessWrites.assertCanWriteOwnBusiness)(access,businessId,deps),assertCanWriteBookBusiness:(access,businessId)=>(0,_accessWrites.assertCanWriteBookBusiness)(access,businessId,deps),assertCanWriteBookUnionOwn:(access,businessId)=>(0,_accessWrites.assertCanWriteBookUnionOwn)(access,businessId,deps),stampOwnBusinessId:(access,body)=>(0,_accessWrites.stampOwnBusinessId)(access,body,deps)}}
320
+ /***/;var _accessContext=__webpack_require__(62),_accessScope=__webpack_require__(513),_accessWrites=__webpack_require__(165)},
161
321
  /***/564(module){module.exports=require("bluebird");
162
322
  /***/},
163
323
  /***/673(__unused_webpack_module,exports,__webpack_require__){Object.defineProperty(exports,"__esModule",{value:!0}),exports.accessRightsUtils=accessRightsUtils,exports.checkIsSuper=
@@ -410,7 +570,7 @@ const usersImports=Object.values(userImportTypes),items=path.split("/"),fileName
410
570
  /***/},
411
571
  /***/929(module){module.exports=require("@aws-sdk/client-dynamodb");
412
572
  /***/},
413
- /***/953(__unused_webpack_module,exports){Object.defineProperty(exports,"__esModule",{value:!0}),exports.errorList=void 0;exports.errorList={invalidInventoryReleaseRequest:{message:"NOT ENOUGH INVENTORY TO FULFILL RELEASE",errorCode:"4010",statusCode:400},alreadyReleased:{message:"ALREADY RELEASED",errorCode:"4011",statusCode:400},alreadyReceived:{message:"RECEIVABLE ALREADY RECEIVED",errorCode:"4012",statusCode:400},invalidItemsRequest:{message:"VALID ITEMS MUST BE INCLUDED",errorCode:"4013",statusCode:400},invalidID:{message:"ID is invalid",errorCode:"4014",statusCode:400},invalidReceivable:{message:"MUST CONTAIN AT LEAST ONE RECEIVABLE",errorCode:"4015",statusCode:400},invalidRequest:{message:"INVALID REQUEST DATA",errorCode:"4016",statusCode:400},invalidAPIKey:{message:"INVALID REQUEST - API MAY KEY INVALID",errorCode:"4017",statusCode:400},qbCreationError:{message:"QUICKBOOKS ERROR - ERROR CREATING OBJECT IN QUICKBOOKS",errorCode:"4018",statusCode:400},cannotReopen:{message:"CANNOT REOPEN - THE ORDER HAS ALREADY BEEN OPENED",errorCode:"4018",statusCode:400},invalidDateFormat:{message:"INVALID DATE FORMAT",errorCode:"4019",statusCode:400},invalidStartDate:{message:"INVALID START DATE",errorCode:"4020",statusCode:400},invalidEndDate:{message:"INVALID END DATE",errorCode:"4021",statusCode:400},invalidOrderStatus:{message:"UNABLE TO EDIT ORDER ITEMS UNLESS THE ORDER IS IN ESTIMATE STATUS",errorCode:"4022",statusCode:400},invalidPaymentStatus:{message:"UNABLE TO UPDATE PAYMENT STATUS PAYMENT MUST BE OPEN",errorCode:"4023",statusCode:400},invalidReleaseStatus:{message:"UNABLE TO UPDATE RELEASE, STATUS RELEASE MUST BE OPEN",errorCode:"4024",statusCode:400},invalidReceivableStatus:{message:"UNABLE TO UPDATE RECEIVABLE, STATUS RECEIVABLE MUST BE OPEN",errorCode:"40025",statusCode:400},invalidJson:{message:"INVALID JSON",errorCode:"4005",statusCode:400},invalidFilter:{message:"INVALID FILTER",errorCode:"4026",statusCode:400},invalidUserNameUpdate:{message:"UNABLE TO UPDATE USERNAME",errorCode:"4027",statusCode:400},imageSizeLimit:{message:"IMAGE SIZE LIMIT 100KB EXCEEDED",errorCode:"4028",statusCode:400},unauthorized:{message:"UNAUTHORIZED",errorCode:"4111",statusCode:401},notFound:{message:"ITEM NOT FOUND",errorCode:"4004",statusCode:404},emailRequired:{message:"NO EMAIL PROVIDED, CHECK CUSTOMER EMAIL",errorCode:"4004",statusCode:404},mobilePhoneRequired:{message:"NO MOBILE PHONE PROVIDED, CHECK CUSTOMER CONTACTS",errorCode:"4004",statusCode:404},invalidCadenceType:{message:"INVALID CADENCE TYPE",errorCode:"5001",statusCode:500}};
573
+ /***/953(__unused_webpack_module,exports){Object.defineProperty(exports,"__esModule",{value:!0}),exports.errorList=void 0;exports.errorList={invalidInventoryReleaseRequest:{message:"NOT ENOUGH INVENTORY TO FULFILL RELEASE",errorCode:"4010",statusCode:400},alreadyReleased:{message:"ALREADY RELEASED",errorCode:"4011",statusCode:400},alreadyReceived:{message:"RECEIVABLE ALREADY RECEIVED",errorCode:"4012",statusCode:400},invalidItemsRequest:{message:"VALID ITEMS MUST BE INCLUDED",errorCode:"4013",statusCode:400},invalidID:{message:"ID is invalid",errorCode:"4014",statusCode:400},invalidReceivable:{message:"MUST CONTAIN AT LEAST ONE RECEIVABLE",errorCode:"4015",statusCode:400},invalidRequest:{message:"INVALID REQUEST DATA",errorCode:"4016",statusCode:400},invalidAPIKey:{message:"INVALID REQUEST - API MAY KEY INVALID",errorCode:"4017",statusCode:400},qbCreationError:{message:"QUICKBOOKS ERROR - ERROR CREATING OBJECT IN QUICKBOOKS",errorCode:"4018",statusCode:400},cannotReopen:{message:"CANNOT REOPEN - THE ORDER HAS ALREADY BEEN OPENED",errorCode:"4018",statusCode:400},invalidDateFormat:{message:"INVALID DATE FORMAT",errorCode:"4019",statusCode:400},invalidStartDate:{message:"INVALID START DATE",errorCode:"4020",statusCode:400},invalidEndDate:{message:"INVALID END DATE",errorCode:"4021",statusCode:400},invalidOrderStatus:{message:"UNABLE TO EDIT ORDER ITEMS UNLESS THE ORDER IS IN ESTIMATE STATUS",errorCode:"4022",statusCode:400},invalidPaymentStatus:{message:"UNABLE TO UPDATE PAYMENT STATUS PAYMENT MUST BE OPEN",errorCode:"4023",statusCode:400},invalidReleaseStatus:{message:"UNABLE TO UPDATE RELEASE, STATUS RELEASE MUST BE OPEN",errorCode:"4024",statusCode:400},invalidReceivableStatus:{message:"UNABLE TO UPDATE RECEIVABLE, STATUS RECEIVABLE MUST BE OPEN",errorCode:"40025",statusCode:400},invalidJson:{message:"INVALID JSON",errorCode:"4005",statusCode:400},invalidFilter:{message:"INVALID FILTER",errorCode:"4026",statusCode:400},invalidUserNameUpdate:{message:"UNABLE TO UPDATE USERNAME",errorCode:"4027",statusCode:400},imageSizeLimit:{message:"IMAGE SIZE LIMIT 100KB EXCEEDED",errorCode:"4028",statusCode:400},unauthorized:{message:"UNAUTHORIZED",errorCode:"4111",statusCode:401},notFound:{message:"ITEM NOT FOUND",errorCode:"4004",statusCode:404},emailRequired:{message:"NO EMAIL PROVIDED, CHECK CUSTOMER EMAIL",errorCode:"4004",statusCode:404},mobilePhoneRequired:{message:"NO MOBILE PHONE PROVIDED, CHECK CUSTOMER CONTACTS",errorCode:"4004",statusCode:404},invalidCadenceType:{message:"INVALID CADENCE TYPE",errorCode:"5001",statusCode:500},partnerNotConfigured:{message:"Partner has no partnerBusinessId configured. Contact support.",errorCode:"4310",statusCode:400}};
414
574
  /***/},
415
575
  /***/981(__unused_webpack_module,exports){
416
576
  /**
@@ -464,6 +624,6 @@ function createIncludes(event,objectFilters){const query=_lodash.default.get(eve
464
624
  /******/
465
625
  /************************************************************************/var __webpack_exports__={};
466
626
  // This entry needs to be wrapped in an IIFE because it uses a non-standard name for the exports (exports).
467
- (()=>{var exports=__webpack_exports__;Object.defineProperty(exports,"__esModule",{value:!0}),exports.watchBucket=exports.userDefaultBid=exports.successHtml=exports.success=exports.runMigrations=exports.publishEvents=exports.parseEvent=exports.parseBody=exports.isSystemUser=exports.isSuperUser=exports.isPartnerUser=exports.handleFile=exports.getModuleInfo=exports.getEffectivePartnerId=exports.getDefaultBusinessIDInfo=exports.getCurrentUserNameFromCognitoEvent=exports.getCurrentUser=exports.getCompanySettings=exports.getBusinessesInfo=exports.getBelongsToPartnerId=exports.getAccessRightsInfo=exports.findAll=exports.failure=exports.enrichEventWithPartnerAccess=exports.defaultFilters=exports.createSort=exports.createIncludes=exports.createFilters=exports.checkWriteAccess=exports.checkModule=exports.checkIsSuper=exports.accessRightsUtils=void 0;var _handleFile=__webpack_require__(876),_watchBucket=__webpack_require__(183),_publishEvents=__webpack_require__(864),_createIncludes=__webpack_require__(982),_createFilters=__webpack_require__(288),_createSort=__webpack_require__(835),_findAll=__webpack_require__(981),_accessRightsUtils=__webpack_require__(673),_requestResponse=__webpack_require__(859),_migrations=__webpack_require__(871),_defaultFilters=__webpack_require__(207);exports.handleFile=_handleFile.handleFile,exports.watchBucket=_watchBucket.watchBucket,exports.publishEvents=_publishEvents.publishEvents,exports.createFilters=_createFilters.createFilters,exports.createIncludes=_createIncludes.createIncludes,exports.createSort=_createSort.createSort,exports.findAll=_findAll.findAll,exports.checkModule=_accessRightsUtils.checkModule,exports.checkIsSuper=_accessRightsUtils.checkIsSuper,exports.getAccessRightsInfo=_accessRightsUtils.getAccessRightsInfo,exports.getDefaultBusinessIDInfo=_accessRightsUtils.getDefaultBusinessIDInfo,exports.getModuleInfo=_accessRightsUtils.getModuleInfo,exports.failure=_requestResponse.failure,exports.success=_requestResponse.success,exports.runMigrations=_migrations.runMigrations,exports.getCurrentUser=_requestResponse.getCurrentUser,exports.successHtml=_requestResponse.successHtml,exports.getCurrentUserNameFromCognitoEvent=_requestResponse.getCurrentUserNameFromCognitoEvent,exports.defaultFilters=_defaultFilters.defaultFilters,exports.accessRightsUtils=_accessRightsUtils.accessRightsUtils,exports.parseBody=_requestResponse.parseBody,exports.parseEvent=_requestResponse.parseEvent,exports.getBusinessesInfo=_accessRightsUtils.getBusinessesInfo,exports.userDefaultBid=_accessRightsUtils.userDefaultBid,exports.checkWriteAccess=_accessRightsUtils.checkWriteAccess,exports.isSystemUser=_accessRightsUtils.isSystemUser,exports.isSuperUser=_accessRightsUtils.isSuperUser,exports.isPartnerUser=_accessRightsUtils.isPartnerUser,exports.getBelongsToPartnerId=_accessRightsUtils.getBelongsToPartnerId,exports.getEffectivePartnerId=_accessRightsUtils.getEffectivePartnerId,exports.enrichEventWithPartnerAccess=_accessRightsUtils.enrichEventWithPartnerAccess,exports.getCompanySettings=_accessRightsUtils.getCompanySettings})();var __webpack_export_target__=exports;for(var __webpack_i__ in __webpack_exports__)__webpack_export_target__[__webpack_i__]=__webpack_exports__[__webpack_i__];__webpack_exports__.__esModule&&Object.defineProperty(__webpack_export_target__,"__esModule",{value:!0})
627
+ (()=>{var exports=__webpack_exports__;Object.defineProperty(exports,"__esModule",{value:!0}),exports.watchBucket=exports.userDefaultBid=exports.successHtml=exports.success=exports.stampOwnBusinessId=exports.scopeToPartnerBook=exports.scopeToOwnBusiness=exports.scopeToBookUnionOwn=exports.runMigrations=exports.resolveAccess=exports.requireTicketAccess=exports.requireSuper=exports.requireCrmAccess=exports.publishEvents=exports.parseEvent=exports.parseBody=exports.isSystemUser=exports.isSuperUser=exports.isPartnerUser=exports.handleFile=exports.getModuleInfo=exports.getEffectivePartnerId=exports.getDefaultBusinessIDInfo=exports.getCurrentUserNameFromCognitoEvent=exports.getCurrentUser=exports.getCompanySettings=exports.getBusinessesInfo=exports.getBelongsToPartnerId=exports.getAccessRightsInfo=exports.findAll=exports.failure=exports.ensurePartnerScope=exports.enrichEventWithPartnerAccess=exports.defaultFilters=exports.createSort=exports.createIncludes=exports.createFilters=exports.createAccessHelpers=exports.checkWriteAccess=exports.checkModule=exports.checkIsSuper=exports.assertCanWriteOwnBusiness=exports.assertCanWriteBookUnionOwn=exports.assertCanWriteBookBusiness=exports.accessRightsUtils=void 0;var _handleFile=__webpack_require__(876),_watchBucket=__webpack_require__(183),_publishEvents=__webpack_require__(864),_createIncludes=__webpack_require__(982),_createFilters=__webpack_require__(288),_createSort=__webpack_require__(835),_findAll=__webpack_require__(981),_accessRightsUtils=__webpack_require__(673),_requestResponse=__webpack_require__(859),_migrations=__webpack_require__(871),_defaultFilters=__webpack_require__(207),_accessContext=__webpack_require__(62),_accessGates=__webpack_require__(189),_accessScope=__webpack_require__(513),_accessWrites=__webpack_require__(165),_createAccessHelpers=__webpack_require__(539);exports.handleFile=_handleFile.handleFile,exports.watchBucket=_watchBucket.watchBucket,exports.publishEvents=_publishEvents.publishEvents,exports.createFilters=_createFilters.createFilters,exports.createIncludes=_createIncludes.createIncludes,exports.createSort=_createSort.createSort,exports.findAll=_findAll.findAll,exports.checkModule=_accessRightsUtils.checkModule,exports.checkIsSuper=_accessRightsUtils.checkIsSuper,exports.getAccessRightsInfo=_accessRightsUtils.getAccessRightsInfo,exports.getDefaultBusinessIDInfo=_accessRightsUtils.getDefaultBusinessIDInfo,exports.getModuleInfo=_accessRightsUtils.getModuleInfo,exports.failure=_requestResponse.failure,exports.success=_requestResponse.success,exports.runMigrations=_migrations.runMigrations,exports.getCurrentUser=_requestResponse.getCurrentUser,exports.successHtml=_requestResponse.successHtml,exports.getCurrentUserNameFromCognitoEvent=_requestResponse.getCurrentUserNameFromCognitoEvent,exports.defaultFilters=_defaultFilters.defaultFilters,exports.accessRightsUtils=_accessRightsUtils.accessRightsUtils,exports.parseBody=_requestResponse.parseBody,exports.parseEvent=_requestResponse.parseEvent,exports.getBusinessesInfo=_accessRightsUtils.getBusinessesInfo,exports.userDefaultBid=_accessRightsUtils.userDefaultBid,exports.checkWriteAccess=_accessRightsUtils.checkWriteAccess,exports.isSystemUser=_accessRightsUtils.isSystemUser,exports.isSuperUser=_accessRightsUtils.isSuperUser,exports.isPartnerUser=_accessRightsUtils.isPartnerUser,exports.getBelongsToPartnerId=_accessRightsUtils.getBelongsToPartnerId,exports.getEffectivePartnerId=_accessRightsUtils.getEffectivePartnerId,exports.enrichEventWithPartnerAccess=_accessRightsUtils.enrichEventWithPartnerAccess,exports.getCompanySettings=_accessRightsUtils.getCompanySettings,exports.resolveAccess=_accessContext.resolveAccess,exports.ensurePartnerScope=_accessContext.ensurePartnerScope,exports.requireCrmAccess=_accessGates.requireCrmAccess,exports.requireTicketAccess=_accessGates.requireTicketAccess,exports.requireSuper=_accessGates.requireSuper,exports.scopeToOwnBusiness=_accessScope.scopeToOwnBusiness,exports.scopeToPartnerBook=_accessScope.scopeToPartnerBook,exports.scopeToBookUnionOwn=_accessScope.scopeToBookUnionOwn,exports.assertCanWriteOwnBusiness=_accessWrites.assertCanWriteOwnBusiness,exports.assertCanWriteBookBusiness=_accessWrites.assertCanWriteBookBusiness,exports.assertCanWriteBookUnionOwn=_accessWrites.assertCanWriteBookUnionOwn,exports.stampOwnBusinessId=_accessWrites.stampOwnBusinessId,exports.createAccessHelpers=_createAccessHelpers.createAccessHelpers})();var __webpack_export_target__=exports;for(var __webpack_i__ in __webpack_exports__)__webpack_export_target__[__webpack_i__]=__webpack_exports__[__webpack_i__];__webpack_exports__.__esModule&&Object.defineProperty(__webpack_export_target__,"__esModule",{value:!0})
468
628
  /******/})();
469
629
  //# sourceMappingURL=main.js.map