piper-utils 1.1.64 → 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 +162 -2
- package/bin/main.js.map +1 -1
- package/package.json +1 -1
- package/src/database/dbUtils/partnerAccess/accessContext.js +70 -0
- package/src/database/dbUtils/partnerAccess/accessGates.js +34 -0
- package/src/database/dbUtils/partnerAccess/accessScope.js +99 -0
- package/src/database/dbUtils/partnerAccess/accessWrites.js +128 -0
- package/src/database/dbUtils/partnerAccess/createAccessHelpers.js +38 -0
- package/src/index.js +82 -64
- package/src/requestResponse/errorCodes.js +5 -0
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
|