grm-shared-library 1.1.205 → 1.1.207
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/README.md +75 -0
- package/dist/cjs/exceptions/filters/http-exceptions.filter.js +19 -2
- package/dist/cjs/exceptions/filters/http-exceptions.filter.js.map +1 -1
- package/dist/cjs/modules/common/decorators/calendar-date.decorator.js +59 -0
- package/dist/cjs/modules/common/decorators/calendar-date.decorator.js.map +1 -0
- package/dist/cjs/modules/common/index.js +2 -0
- package/dist/cjs/modules/common/index.js.map +1 -1
- package/dist/cjs/modules/common/utils/calendar-date.util.js +148 -0
- package/dist/cjs/modules/common/utils/calendar-date.util.js.map +1 -0
- package/dist/cjs/modules/partner/dtos/partner-member-profile.dto.js +2 -3
- package/dist/cjs/modules/partner/dtos/partner-member-profile.dto.js.map +1 -1
- package/dist/cjs/modules/partner/index.js +1 -0
- package/dist/cjs/modules/partner/index.js.map +1 -1
- package/dist/cjs/modules/partner/interfaces/partner-member-readiness.js +3 -0
- package/dist/cjs/modules/partner/interfaces/partner-member-readiness.js.map +1 -0
- package/dist/cjs/modules/partner/utils/partner-membership.util.js +23 -31
- package/dist/cjs/modules/partner/utils/partner-membership.util.js.map +1 -1
- package/dist/cjs/modules/partner/utils/partner-payload.util.js +25 -8
- package/dist/cjs/modules/partner/utils/partner-payload.util.js.map +1 -1
- package/dist/cjs/modules/role/constants/roles-by-scope.js +2 -1
- package/dist/cjs/modules/role/constants/roles-by-scope.js.map +1 -1
- package/dist/cjs/modules/role/data/roles.data.js +30 -0
- package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
- package/dist/cjs/modules/role/enums/role.enum.js +1 -0
- package/dist/cjs/modules/role/enums/role.enum.js.map +1 -1
- package/dist/cjs/modules/user/dtos/create-user.dto.js +10 -0
- package/dist/cjs/modules/user/dtos/create-user.dto.js.map +1 -1
- package/dist/esm/exceptions/filters/http-exceptions.filter.js +19 -2
- package/dist/esm/exceptions/filters/http-exceptions.filter.js.map +1 -1
- package/dist/esm/modules/common/decorators/calendar-date.decorator.js +55 -0
- package/dist/esm/modules/common/decorators/calendar-date.decorator.js.map +1 -0
- package/dist/esm/modules/common/index.js +2 -0
- package/dist/esm/modules/common/index.js.map +1 -1
- package/dist/esm/modules/common/utils/calendar-date.util.js +140 -0
- package/dist/esm/modules/common/utils/calendar-date.util.js.map +1 -0
- package/dist/esm/modules/partner/dtos/partner-member-profile.dto.js +2 -3
- package/dist/esm/modules/partner/dtos/partner-member-profile.dto.js.map +1 -1
- package/dist/esm/modules/partner/index.js +1 -0
- package/dist/esm/modules/partner/index.js.map +1 -1
- package/dist/esm/modules/partner/interfaces/partner-member-readiness.js +2 -0
- package/dist/esm/modules/partner/interfaces/partner-member-readiness.js.map +1 -0
- package/dist/esm/modules/partner/utils/partner-membership.util.js +25 -28
- package/dist/esm/modules/partner/utils/partner-membership.util.js.map +1 -1
- package/dist/esm/modules/partner/utils/partner-payload.util.js +25 -9
- package/dist/esm/modules/partner/utils/partner-payload.util.js.map +1 -1
- package/dist/esm/modules/role/constants/roles-by-scope.js +2 -1
- package/dist/esm/modules/role/constants/roles-by-scope.js.map +1 -1
- package/dist/esm/modules/role/data/roles.data.js +30 -0
- package/dist/esm/modules/role/data/roles.data.js.map +1 -1
- package/dist/esm/modules/role/enums/role.enum.js +1 -0
- package/dist/esm/modules/role/enums/role.enum.js.map +1 -1
- package/dist/esm/modules/user/dtos/create-user.dto.js +10 -0
- package/dist/esm/modules/user/dtos/create-user.dto.js.map +1 -1
- package/dist/types/modules/common/decorators/calendar-date.decorator.d.ts +26 -0
- package/dist/types/modules/common/index.d.ts +2 -0
- package/dist/types/modules/common/utils/calendar-date.util.d.ts +80 -0
- package/dist/types/modules/partner/dtos/partner-member-profile.dto.d.ts +8 -1
- package/dist/types/modules/partner/index.d.ts +1 -0
- package/dist/types/modules/partner/interfaces/partner-member-readiness.d.ts +60 -0
- package/dist/types/modules/partner/utils/partner-membership.util.d.ts +17 -6
- package/dist/types/modules/partner/utils/partner-payload.util.d.ts +11 -10
- package/dist/types/modules/role/enums/role.enum.d.ts +1 -0
- package/dist/types/modules/user/dtos/create-user.dto.d.ts +1 -0
- package/dist/types/modules/user/interfaces/user.d.ts +10 -0
- package/package.json +1 -1
|
@@ -7,7 +7,8 @@ exports.ORGANIZATION_ROLES = [
|
|
|
7
7
|
role_enum_1.Roles.ORGANIZATION_ADMIN,
|
|
8
8
|
role_enum_1.Roles.ORGANIZATION_USER,
|
|
9
9
|
role_enum_1.Roles.ORGANIZATION_BILLING_ADMIN,
|
|
10
|
-
role_enum_1.Roles.ORGANIZATION_NEWSFEED_ADMIN
|
|
10
|
+
role_enum_1.Roles.ORGANIZATION_NEWSFEED_ADMIN,
|
|
11
|
+
role_enum_1.Roles.ORGANIZATION_PARTNERSHIPS_ADMIN
|
|
11
12
|
];
|
|
12
13
|
exports.CONTROL_CENTRE_ROLES = [
|
|
13
14
|
role_enum_1.Roles.CONTROL_CENTRE_ADMIN,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles-by-scope.js","sourceRoot":"","sources":["../../../../../src/modules/role/constants/roles-by-scope.ts"],"names":[],"mappings":";;;AAAA,kDAA2C;AAE9B,QAAA,kBAAkB,GAAa;IACxC,iBAAK,CAAC,kBAAkB;IACxB,iBAAK,CAAC,kBAAkB;IACxB,iBAAK,CAAC,iBAAiB;IACvB,iBAAK,CAAC,0BAA0B;IAChC,iBAAK,CAAC,2BAA2B;
|
|
1
|
+
{"version":3,"file":"roles-by-scope.js","sourceRoot":"","sources":["../../../../../src/modules/role/constants/roles-by-scope.ts"],"names":[],"mappings":";;;AAAA,kDAA2C;AAE9B,QAAA,kBAAkB,GAAa;IACxC,iBAAK,CAAC,kBAAkB;IACxB,iBAAK,CAAC,kBAAkB;IACxB,iBAAK,CAAC,iBAAiB;IACvB,iBAAK,CAAC,0BAA0B;IAChC,iBAAK,CAAC,2BAA2B;IACjC,iBAAK,CAAC,+BAA+B;CACxC,CAAC;AAEW,QAAA,oBAAoB,GAAa;IAC1C,iBAAK,CAAC,oBAAoB;IAC1B,iBAAK,CAAC,mBAAmB;IACzB,iBAAK,CAAC,SAAS;CAClB,CAAC;AAEW,QAAA,YAAY,GAAa;IAClC,iBAAK,CAAC,WAAW;CACpB,CAAC"}
|
|
@@ -200,6 +200,36 @@ exports.ROLES_DATA = [
|
|
|
200
200
|
permission_1.PermissionActions.READ_RESPONSE_UNIT
|
|
201
201
|
]
|
|
202
202
|
},
|
|
203
|
+
{
|
|
204
|
+
name: role_enum_1.Roles.ORGANIZATION_PARTNERSHIPS_ADMIN,
|
|
205
|
+
description: 'Organization Partnerships Admin: Manage partnerships with third-party responders - their configuration, coverage, dispatches and member registration',
|
|
206
|
+
permissions: [
|
|
207
|
+
//Partner: every action in the Partner permission module. Pinned by
|
|
208
|
+
//roles.spec.ts, so an action added to that module later has to be
|
|
209
|
+
//granted here - or deliberately withheld - rather than silently missed.
|
|
210
|
+
permission_1.PermissionActions.CREATE_PARTNER,
|
|
211
|
+
permission_1.PermissionActions.READ_PARTNER,
|
|
212
|
+
permission_1.PermissionActions.UPDATE_PARTNER,
|
|
213
|
+
permission_1.PermissionActions.DELETE_PARTNER,
|
|
214
|
+
//Partner dispatch
|
|
215
|
+
permission_1.PermissionActions.READ_PARTNER_DISPATCH,
|
|
216
|
+
permission_1.PermissionActions.APPROVE_PARTNER_DISPATCH,
|
|
217
|
+
permission_1.PermissionActions.UPDATE_PARTNER_DISPATCH,
|
|
218
|
+
permission_1.PermissionActions.CANCEL_PARTNER_DISPATCH,
|
|
219
|
+
permission_1.PermissionActions.RESEND_PARTNER_DISPATCH,
|
|
220
|
+
//Partner membership: includes reading and correcting a member's date
|
|
221
|
+
//of birth. Registering people with a partner is this role's job.
|
|
222
|
+
permission_1.PermissionActions.READ_PARTNER_MEMBERSHIP,
|
|
223
|
+
permission_1.PermissionActions.MANAGE_PARTNER_MEMBERSHIP,
|
|
224
|
+
//Billing: which packages a partnership registers subscribers of.
|
|
225
|
+
//Read-only - this role configures partnerships, not the packages.
|
|
226
|
+
permission_1.PermissionActions.READ_PACKAGE,
|
|
227
|
+
//Incident Category Type: which incident types and categories a
|
|
228
|
+
//partnership's coverage rules route to that partner. Read-only, and
|
|
229
|
+
//the taxonomy only - not the incidents themselves.
|
|
230
|
+
permission_1.PermissionActions.READ_INCIDENT_CATEGORY_TYPE
|
|
231
|
+
]
|
|
232
|
+
},
|
|
203
233
|
{
|
|
204
234
|
name: role_enum_1.Roles.CONTROL_CENTRE_ADMIN,
|
|
205
235
|
description: 'Control Centre Admin: Manage Control Centre',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.data.js","sourceRoot":"","sources":["../../../../../src/modules/role/data/roles.data.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"roles.data.js","sourceRoot":"","sources":["../../../../../src/modules/role/data/roles.data.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ var Roles;
|
|
|
9
9
|
Roles["ORGANIZATION_USER"] = "Organization:User";
|
|
10
10
|
Roles["ORGANIZATION_BILLING_ADMIN"] = "Organization:Billing-Admin";
|
|
11
11
|
Roles["ORGANIZATION_NEWSFEED_ADMIN"] = "Organization:Newsfeed-Admin";
|
|
12
|
+
Roles["ORGANIZATION_PARTNERSHIPS_ADMIN"] = "Organization:Partnerships-Admin";
|
|
12
13
|
Roles["CONTROL_CENTRE_ADMIN"] = "Control-Centre:Admin";
|
|
13
14
|
Roles["CONTROL_CENTRE_USER"] = "Control-Centre:User";
|
|
14
15
|
Roles["RESPONDER"] = "Responder";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.enum.js","sourceRoot":"","sources":["../../../../../src/modules/role/enums/role.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"role.enum.js","sourceRoot":"","sources":["../../../../../src/modules/role/enums/role.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,KAYX;AAZD,WAAY,KAAK;IACb,oCAA2B,CAAA;IAC3B,kDAAyC,CAAA;IACzC,kDAAyC,CAAA;IACzC,gDAAuC,CAAA;IACvC,kEAAyD,CAAA;IACzD,oEAA2D,CAAA;IAC3D,4EAAmE,CAAA;IACnE,sDAA6C,CAAA;IAC7C,oDAA2C,CAAA;IAC3C,gCAAuB,CAAA;IACvB,oCAA2B,CAAA;AAC/B,CAAC,EAZW,KAAK,qBAAL,KAAK,QAYhB;AAED;;GAEG"}
|
|
@@ -21,6 +21,7 @@ const guardian_dto_1 = require("./guardian.dto");
|
|
|
21
21
|
const incident_1 = require("../../incident");
|
|
22
22
|
const country_code_enum_1 = require("../../country/enums/country-code.enum");
|
|
23
23
|
const is_supported_phone_number_decorator_1 = require("../../phone/validators/is-supported-phone-number.decorator");
|
|
24
|
+
const calendar_date_decorator_1 = require("../../common/decorators/calendar-date.decorator");
|
|
24
25
|
class CreateUserDto {
|
|
25
26
|
}
|
|
26
27
|
exports.CreateUserDto = CreateUserDto;
|
|
@@ -154,4 +155,13 @@ __decorate([
|
|
|
154
155
|
(0, class_validator_1.IsNotEmpty)(),
|
|
155
156
|
__metadata("design:type", Number)
|
|
156
157
|
], CreateUserDto.prototype, "organizationId", void 0);
|
|
158
|
+
__decorate([
|
|
159
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
160
|
+
description: 'Date of birth as a calendar date. Required by some emergency-response partners to register the person as a member; never used to gate access.',
|
|
161
|
+
example: '1990-04-17',
|
|
162
|
+
}),
|
|
163
|
+
(0, class_validator_1.IsOptional)(),
|
|
164
|
+
(0, calendar_date_decorator_1.IsBirthDate)(),
|
|
165
|
+
__metadata("design:type", String)
|
|
166
|
+
], CreateUserDto.prototype, "dateOfBirth", void 0);
|
|
157
167
|
//# sourceMappingURL=create-user.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-user.dto.js","sourceRoot":"","sources":["../../../../../src/modules/user/dtos/create-user.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAeyB;AACzB,6CAAmE;AACnE,yEAAmE;AACnE,gEAAuD;AACvD,sFAAqG;AACrG,qCAAmC;AACnC,yDAAyC;AACzC,iDAA6C;AAC7C,6CAA+C;AAC/C,6EAAoE;AACpE,oHAAoG;
|
|
1
|
+
{"version":3,"file":"create-user.dto.js","sourceRoot":"","sources":["../../../../../src/modules/user/dtos/create-user.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,9 +22,26 @@ let HttpExceptionFilter = class HttpExceptionFilter {
|
|
|
22
22
|
status = exception.getStatus();
|
|
23
23
|
errorResponse = exception.getResponse();
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
// Sentry gets the full context; the CALLER never does.
|
|
26
|
+
//
|
|
27
|
+
// `context.payload` is the handler argument that produced the error -
|
|
28
|
+
// a DTO, or in several services the whole Express request with its
|
|
29
|
+
// x-user-context headers. Spreading errorResponse into the response
|
|
30
|
+
// body shipped all of that back to whoever made the failing call, so a
|
|
31
|
+
// rejected date of birth was echoed to the client that sent it and a
|
|
32
|
+
// rejected login was echoed with its credentials.
|
|
33
|
+
// Guarded: `getResponse()` returns a bare STRING for `new
|
|
34
|
+
// HttpException('msg', 404)`, and spreading a string yields
|
|
35
|
+
// {0:'m',1:'s',...} - which would turn every such error into
|
|
36
|
+
// character-indexed nonsense.
|
|
37
|
+
const isObject = typeof errorResponse === 'object' && errorResponse !== null;
|
|
38
|
+
const { context, ...rest } = isObject
|
|
39
|
+
? errorResponse
|
|
40
|
+
: { context: undefined };
|
|
41
|
+
const clientSafeError = isObject ? rest : { message: errorResponse, code: ErrorCodes.UNKNOWN_ERROR };
|
|
42
|
+
logError(exception, context || {});
|
|
26
43
|
response.status(status).json({
|
|
27
|
-
...
|
|
44
|
+
...clientSafeError,
|
|
28
45
|
path: request.url,
|
|
29
46
|
timestamp: new Date().toISOString()
|
|
30
47
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-exceptions.filter.js","sourceRoot":"","sources":["../../../../src/exceptions/filters/http-exceptions.filter.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAiB,KAAK,EAAmB,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGjD,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAE5B,KAAK,CAAC,SAAkB,EAAE,IAAmB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAEjC,IAAI,MAAM,GAAG,UAAU,CAAC,qBAAqB,CAAC;QAC9C,IAAI,aAAa,GAAQ;YACrB,OAAO,EAAE,uBAAuB;YAChC,IAAI,EAAE,UAAU,CAAC,aAAa;YAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QAEF,IAAI,SAAS,YAAY,aAAa,EAAE,CAAC;YACrC,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;YAC/B,aAAa,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC;QAED,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"http-exceptions.filter.js","sourceRoot":"","sources":["../../../../src/exceptions/filters/http-exceptions.filter.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAiB,KAAK,EAAmB,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGjD,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAE5B,KAAK,CAAC,SAAkB,EAAE,IAAmB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QAEjC,IAAI,MAAM,GAAG,UAAU,CAAC,qBAAqB,CAAC;QAC9C,IAAI,aAAa,GAAQ;YACrB,OAAO,EAAE,uBAAuB;YAChC,IAAI,EAAE,UAAU,CAAC,aAAa;YAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QAEF,IAAI,SAAS,YAAY,aAAa,EAAE,CAAC;YACrC,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;YAC/B,aAAa,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC;QAED,uDAAuD;QACvD,EAAE;QACF,sEAAsE;QACtE,mEAAmE;QACnE,oEAAoE;QACpE,uEAAuE;QACvE,qEAAqE;QACrE,kDAAkD;QAClD,0DAA0D;QAC1D,4DAA4D;QAC5D,6DAA6D;QAC7D,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,IAAI,CAAC;QAC7E,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ;YACjC,CAAC,CAAE,aAAyC;YAC5C,CAAC,CAAE,EAAE,OAAO,EAAE,SAAS,EAA8B,CAAC;QAC1D,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,CAAC,aAAa,EAAE,CAAC;QACrG,QAAQ,CAAC,SAAkB,EAAG,OAAmC,IAAI,EAAE,CAAC,CAAC;QAEzE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YACzB,GAAG,eAAe;YAClB,IAAI,EAAE,OAAO,CAAC,GAAG;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AA5CY,mBAAmB;IAD/B,KAAK,EAAE;GACK,mBAAmB,CA4C/B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { registerDecorator } from 'class-validator';
|
|
2
|
+
import { isCalendarDate, isPlausibleBirthDate } from '../utils/calendar-date.util';
|
|
3
|
+
/**
|
|
4
|
+
* Validates a `YYYY-MM-DD` calendar date on a DTO.
|
|
5
|
+
*
|
|
6
|
+
* Exists so the rule has ONE definition. Before this decorator the same regex
|
|
7
|
+
* was written out by hand in three DTOs and one utility, and they had already
|
|
8
|
+
* drifted apart - a `@Matches` regex accepts `2026-02-30`, which Postgres then
|
|
9
|
+
* quietly rolls forward to 1 March.
|
|
10
|
+
*
|
|
11
|
+
* A decorator alone guarantees nothing on this platform, and that is not a
|
|
12
|
+
* theoretical caveat: clarion-authentication registers no global ValidationPipe
|
|
13
|
+
* at all, the spreadsheet importer builds plain objects the pipe never sees,
|
|
14
|
+
* and internal service-to-service calls bypass HTTP entirely. Any service that
|
|
15
|
+
* OWNS a date of birth must re-check it in the service layer with
|
|
16
|
+
* `isCalendarDate` / `isPlausibleBirthDate`, the way `UserService.updateCountry`
|
|
17
|
+
* re-checks `isSupportedCountryCode`.
|
|
18
|
+
*/
|
|
19
|
+
export function IsCalendarDate(validationOptions) {
|
|
20
|
+
return function (object, propertyName) {
|
|
21
|
+
registerDecorator({
|
|
22
|
+
name: 'isCalendarDate',
|
|
23
|
+
target: object.constructor,
|
|
24
|
+
propertyName,
|
|
25
|
+
options: validationOptions,
|
|
26
|
+
validator: {
|
|
27
|
+
validate: (value) => isCalendarDate(value),
|
|
28
|
+
defaultMessage: () => `${propertyName} must be a real calendar date in YYYY-MM-DD format`,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* A calendar date that could belong to a living person.
|
|
35
|
+
*
|
|
36
|
+
* Refuses a future date and one older than any human lifespan, and imposes NO
|
|
37
|
+
* minimum age - dependents on a family membership are children by design, so a
|
|
38
|
+
* minimum would refuse exactly the people the feature exists to cover.
|
|
39
|
+
*/
|
|
40
|
+
export function IsBirthDate(validationOptions) {
|
|
41
|
+
return function (object, propertyName) {
|
|
42
|
+
registerDecorator({
|
|
43
|
+
name: 'isBirthDate',
|
|
44
|
+
target: object.constructor,
|
|
45
|
+
propertyName,
|
|
46
|
+
options: validationOptions,
|
|
47
|
+
validator: {
|
|
48
|
+
validate: (value) => isPlausibleBirthDate(value),
|
|
49
|
+
defaultMessage: () => `${propertyName} must be a real date of birth in YYYY-MM-DD format, ` +
|
|
50
|
+
'not in the future and within a human lifespan',
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=calendar-date.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar-date.decorator.js","sourceRoot":"","sources":["../../../../../src/modules/common/decorators/calendar-date.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,cAAc,CAAC,iBAAqC;IAChE,OAAO,UAAU,MAAc,EAAE,YAAoB;QACjD,iBAAiB,CAAC;YACd,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY;YACZ,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE;gBACP,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;gBACnD,cAAc,EAAE,GAAG,EAAE,CACjB,GAAG,YAAY,oDAAoD;aAC1E;SACJ,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC7D,OAAO,UAAU,MAAc,EAAE,YAAoB;QACjD,iBAAiB,CAAC;YACd,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY;YACZ,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE;gBACP,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC;gBACzD,cAAc,EAAE,GAAG,EAAE,CACjB,GAAG,YAAY,sDAAsD;oBACrE,+CAA+C;aACtD;SACJ,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -11,4 +11,6 @@ export * from './constants/service.const';
|
|
|
11
11
|
export * from './services';
|
|
12
12
|
export * from './enums/secrets-fetch-strategy.enum';
|
|
13
13
|
export * from './enums/entity-name.enum';
|
|
14
|
+
export * from './utils/calendar-date.util';
|
|
15
|
+
export * from './decorators/calendar-date.decorator';
|
|
14
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0CAA0C,CAAC;AACzD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0CAA0C,CAAC;AACzD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The platform's one definition of a calendar date.
|
|
3
|
+
*
|
|
4
|
+
* A date of birth is a CALENDAR DATE, not an instant. It has no time, no zone
|
|
5
|
+
* and no offset: somebody born on 17 April 1990 was born on that day in Nairobi,
|
|
6
|
+
* in Kampala and in London alike. Every bug this module exists to prevent comes
|
|
7
|
+
* from the same mistake - treating that date as a moment, reading it back in a
|
|
8
|
+
* different zone, and landing a day earlier.
|
|
9
|
+
*
|
|
10
|
+
* That mistake had already been made. Before this module the platform carried
|
|
11
|
+
* four independent copies of the `YYYY-MM-DD` regex and a conversion that did
|
|
12
|
+
* `new Date(freeText)` and then `.toISOString()`. Under `TZ=Africa/Nairobi`,
|
|
13
|
+
* which is what the production pods run:
|
|
14
|
+
*
|
|
15
|
+
* '04/17/1990' -> '1990-04-16' (a day early)
|
|
16
|
+
* new Date(1990,3,17) -> '1990-04-16' (a day early - and this is exactly
|
|
17
|
+
* what a date picker hands you)
|
|
18
|
+
* '17/04/1990' -> undefined (the East African spelling, refused)
|
|
19
|
+
*
|
|
20
|
+
* A birth date that is wrong by a day is worse than one that is missing.
|
|
21
|
+
* Rescue.co cannot delete a member once registered, so a drifted date is
|
|
22
|
+
* permanent, and it is the field a paramedic uses to size a drug dose. So the
|
|
23
|
+
* rule here is deliberately narrow: parse what is unambiguous, refuse
|
|
24
|
+
* everything else, and never guess.
|
|
25
|
+
*/
|
|
26
|
+
/** `YYYY-MM-DD`. The single definition - do not re-declare this anywhere. */
|
|
27
|
+
export const ISO_CALENDAR_DATE_PATTERN = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/;
|
|
28
|
+
/** Nobody lives longer than this, so anything older is a typo or a placeholder. */
|
|
29
|
+
export const MAX_HUMAN_AGE_YEARS = 120;
|
|
30
|
+
/**
|
|
31
|
+
* The age at which a person is treated as an adult, for COPY ONLY.
|
|
32
|
+
*
|
|
33
|
+
* Never a validator. Dependents on a family membership are children by design -
|
|
34
|
+
* that is the entire point of registering them with an emergency responder -
|
|
35
|
+
* so a minimum age would refuse exactly the people the feature exists for.
|
|
36
|
+
*/
|
|
37
|
+
export const AGE_OF_MAJORITY_YEARS = 18;
|
|
38
|
+
/**
|
|
39
|
+
* A real `YYYY-MM-DD` day, not merely a string shaped like one.
|
|
40
|
+
*
|
|
41
|
+
* Rejects `2026-02-30` and `2026-13-01`: the shape is right and the day does
|
|
42
|
+
* not exist. Parsed at UTC midnight so the check cannot depend on where it runs.
|
|
43
|
+
*/
|
|
44
|
+
export function isCalendarDate(value) {
|
|
45
|
+
if (typeof value !== 'string')
|
|
46
|
+
return false;
|
|
47
|
+
if (!ISO_CALENDAR_DATE_PATTERN.test(value))
|
|
48
|
+
return false;
|
|
49
|
+
const parsed = new Date(`${value}T00:00:00.000Z`);
|
|
50
|
+
if (Number.isNaN(parsed.getTime()))
|
|
51
|
+
return false;
|
|
52
|
+
// Postgres would accept '2026-02-30' and quietly roll it to 1 March.
|
|
53
|
+
return parsed.toISOString().slice(0, 10) === value;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Reduce a stored or submitted value to a calendar date, or refuse it.
|
|
57
|
+
*
|
|
58
|
+
* Accepts exactly three things, and nothing else:
|
|
59
|
+
*
|
|
60
|
+
* 1. `YYYY-MM-DD` - the wire format every client must send
|
|
61
|
+
* 2. a full ISO-8601 instant in UTC - `1990-04-17T00:00:00.000Z`, which is
|
|
62
|
+
* what the spreadsheet importer produces
|
|
63
|
+
* 3. a `Date` - read in UTC, so callers must build it
|
|
64
|
+
* with `Date.UTC`, never `new Date(y,m,d)`
|
|
65
|
+
*
|
|
66
|
+
* Free text is REFUSED rather than guessed at. `'04/17/1990'` and `'17/04/1990'`
|
|
67
|
+
* are the same eight characters in different orders and the platform serves
|
|
68
|
+
* Kenya, Uganda and Tanzania, where the second spelling is the common one.
|
|
69
|
+
* There is no reading of that string that is safe to infer, so the honest
|
|
70
|
+
* answer is `undefined` - which surfaces as a field the operator is asked to
|
|
71
|
+
* collect, instead of a wrong birthday nobody ever notices.
|
|
72
|
+
*/
|
|
73
|
+
export function toCalendarDate(value) {
|
|
74
|
+
if (value === null || value === undefined)
|
|
75
|
+
return undefined;
|
|
76
|
+
if (value instanceof Date) {
|
|
77
|
+
if (Number.isNaN(value.getTime()))
|
|
78
|
+
return undefined;
|
|
79
|
+
return value.toISOString().slice(0, 10);
|
|
80
|
+
}
|
|
81
|
+
if (typeof value !== 'string')
|
|
82
|
+
return undefined;
|
|
83
|
+
const trimmed = value.trim();
|
|
84
|
+
if (trimmed === '')
|
|
85
|
+
return undefined;
|
|
86
|
+
if (ISO_CALENDAR_DATE_PATTERN.test(trimmed)) {
|
|
87
|
+
return isCalendarDate(trimmed) ? trimmed : undefined;
|
|
88
|
+
}
|
|
89
|
+
// A full UTC instant is unambiguous, so its date part can be taken. A local
|
|
90
|
+
// or offset timestamp is not: '1990-04-17T00:00:00+03:00' is 16 April in
|
|
91
|
+
// UTC, and only the sender knows which day they meant.
|
|
92
|
+
const utcInstant = /^(\d{4}-\d{2}-\d{2})T\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?Z$/.exec(trimmed);
|
|
93
|
+
if (utcInstant) {
|
|
94
|
+
return isCalendarDate(utcInstant[1]) ? utcInstant[1] : undefined;
|
|
95
|
+
}
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* A date that could belong to a living person.
|
|
100
|
+
*
|
|
101
|
+
* Deliberately NOT an age gate. There is no minimum: a dependent on a family
|
|
102
|
+
* membership may be a newborn. What it refuses is a date that cannot be a birth
|
|
103
|
+
* date at all - one in the future, or one further back than any human lifespan -
|
|
104
|
+
* because those are data-entry accidents (a 2026 default on a picker, a
|
|
105
|
+
* mis-keyed century) rather than facts about a person.
|
|
106
|
+
*
|
|
107
|
+
* `now` is injectable so the rule is deterministic under test, matching
|
|
108
|
+
* `isUsableMembership` and `isMembershipCoverActive`.
|
|
109
|
+
*/
|
|
110
|
+
export function isPlausibleBirthDate(value, now = new Date()) {
|
|
111
|
+
if (!isCalendarDate(value))
|
|
112
|
+
return false;
|
|
113
|
+
const born = new Date(`${value}T00:00:00.000Z`);
|
|
114
|
+
const today = new Date(`${now.toISOString().slice(0, 10)}T00:00:00.000Z`);
|
|
115
|
+
if (born.getTime() > today.getTime())
|
|
116
|
+
return false;
|
|
117
|
+
const oldest = new Date(today.getTime());
|
|
118
|
+
oldest.setUTCFullYear(oldest.getUTCFullYear() - MAX_HUMAN_AGE_YEARS);
|
|
119
|
+
return born.getTime() >= oldest.getTime();
|
|
120
|
+
}
|
|
121
|
+
/** Whole years, UTC throughout. Returns undefined when the date is unusable. */
|
|
122
|
+
export function calculateAge(value, now = new Date()) {
|
|
123
|
+
if (!isCalendarDate(value))
|
|
124
|
+
return undefined;
|
|
125
|
+
const born = new Date(`${value}T00:00:00.000Z`);
|
|
126
|
+
const today = new Date(`${now.toISOString().slice(0, 10)}T00:00:00.000Z`);
|
|
127
|
+
if (born.getTime() > today.getTime())
|
|
128
|
+
return undefined;
|
|
129
|
+
let age = today.getUTCFullYear() - born.getUTCFullYear();
|
|
130
|
+
const monthDelta = today.getUTCMonth() - born.getUTCMonth();
|
|
131
|
+
if (monthDelta < 0 || (monthDelta === 0 && today.getUTCDate() < born.getUTCDate()))
|
|
132
|
+
age -= 1;
|
|
133
|
+
return age;
|
|
134
|
+
}
|
|
135
|
+
/** True when the person is below the age of majority - for COPY, never a gate. */
|
|
136
|
+
export function isMinor(value, now = new Date()) {
|
|
137
|
+
const age = calculateAge(value, now);
|
|
138
|
+
return age !== undefined && age < AGE_OF_MAJORITY_YEARS;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=calendar-date.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar-date.util.js","sourceRoot":"","sources":["../../../../../src/modules/common/utils/calendar-date.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
import { IsEmail, IsEnum, IsISO31661Alpha2, IsOptional, IsString, Length, Matches, MaxLength } from 'class-validator';
|
|
11
11
|
import { Transform } from 'class-transformer';
|
|
12
|
+
import { IsBirthDate } from '../../common/decorators/calendar-date.decorator';
|
|
12
13
|
import { PartnerMemberDocumentType } from '../enums/partner-member-document-type.enum';
|
|
13
14
|
import { PartnerMemberGender } from '../enums/partner-member-gender.enum';
|
|
14
15
|
/** Blank strings mean "not supplied", not "supplied and empty". */
|
|
@@ -51,9 +52,7 @@ __decorate([
|
|
|
51
52
|
IsOptional(),
|
|
52
53
|
IsString(),
|
|
53
54
|
Transform(blankToUndefined),
|
|
54
|
-
|
|
55
|
-
message: 'dateOfBirth must be a calendar date in YYYY-MM-DD form',
|
|
56
|
-
}),
|
|
55
|
+
IsBirthDate(),
|
|
57
56
|
__metadata("design:type", String)
|
|
58
57
|
], PartnerMemberProfileDto.prototype, "dateOfBirth", void 0);
|
|
59
58
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partner-member-profile.dto.js","sourceRoot":"","sources":["../../../../../src/modules/partner/dtos/partner-member-profile.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,mEAAmE;AACnE,MAAM,gBAAgB,GAAG,CAAC,EAAE,KAAK,EAAsB,EAAE,EAAE,CACvD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAEzE;;;;;;;;;GASG;AACH,MAAM,OAAO,uBAAuB;
|
|
1
|
+
{"version":3,"file":"partner-member-profile.dto.js","sourceRoot":"","sources":["../../../../../src/modules/partner/dtos/partner-member-profile.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,mEAAmE;AACnE,MAAM,gBAAgB,GAAG,CAAC,EAAE,KAAK,EAAsB,EAAE,EAAE,CACvD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAEzE;;;;;;;;;GASG;AACH,MAAM,OAAO,uBAAuB;CAsDnC;AAnDG;IAFC,UAAU,EAAE;IAAE,QAAQ,EAAE;IAAE,SAAS,CAAC,GAAG,CAAC;IACxC,SAAS,CAAC,gBAAgB,CAAC;;yDACV;AAWlB;IALC,UAAU,EAAE;IAAE,QAAQ,EAAE;IACxB,SAAS,CAAC,gBAAgB,CAAC;IAC3B,OAAO,CAAC,mBAAmB,EAAE;QAC1B,OAAO,EAAE,iEAAiE;KAC7E,CAAC;;4DACmB;AAIrB;IAFC,UAAU,EAAE;IAAE,OAAO,EAAE;IACvB,SAAS,CAAC,gBAAgB,CAAC;;sDACb;AAaf;IAHC,UAAU,EAAE;IAAE,QAAQ,EAAE;IACxB,SAAS,CAAC,gBAAgB,CAAC;IAC3B,WAAW,EAAE;;4DACO;AAIrB;IAFC,UAAU,EAAE;IAAE,MAAM,CAAC,mBAAmB,CAAC;IACzC,SAAS,CAAC,gBAAgB,CAAC;;uDACC;AAI7B;IAFC,UAAU,EAAE;IAAE,MAAM,CAAC,yBAAyB,CAAC;IAC/C,SAAS,CAAC,gBAAgB,CAAC;;6DACa;AAOzC;IALC,UAAU,EAAE;IAAE,QAAQ,EAAE;IAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;IACvC,SAAS,CAAC,gBAAgB,CAAC;IAC3B,OAAO,CAAC,gBAAgB,EAAE;QACvB,OAAO,EAAE,qCAAqC;KACjD,CAAC;;+DACsB;AAOxB;IAJC,UAAU,EAAE;IAAE,gBAAgB,EAAE;IAChC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACrB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAC5F;;oEAC4B"}
|
|
@@ -33,6 +33,7 @@ export * from './interfaces/partner-connection-test-result';
|
|
|
33
33
|
export * from './interfaces/partner-dispatch-events';
|
|
34
34
|
export * from './interfaces/partner-member-profile';
|
|
35
35
|
export * from './interfaces/partner-membership-descriptor';
|
|
36
|
+
export * from './interfaces/partner-member-readiness';
|
|
36
37
|
export * from './interfaces/partner-membership';
|
|
37
38
|
// Constants
|
|
38
39
|
export * from './constants/partner-defaults.const';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/partner/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAElD,aAAa;AACb,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,iCAAiC,CAAC;AAEhD,YAAY;AACZ,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAEhD,OAAO;AACP,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AAEnD,YAAY;AACZ,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/partner/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAElD,aAAa;AACb,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAEhD,YAAY;AACZ,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAEhD,OAAO;AACP,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AAEnD,YAAY;AACZ,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partner-member-readiness.js","sourceRoot":"","sources":["../../../../../src/modules/partner/interfaces/partner-member-readiness.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
import { ISO_CALENDAR_DATE_PATTERN, isCalendarDate, toCalendarDate, } from '../../common/utils/calendar-date.util';
|
|
1
2
|
import { PARTNER_FIELD_LIMITS } from '../constants/partner-defaults.const';
|
|
2
3
|
import { PartnerMemberProfileField } from '../enums/partner-member-profile-field.enum';
|
|
3
4
|
import { PartnerMembershipStatus } from '../enums/partner-membership-status.enum';
|
|
4
5
|
import { PartnerMembershipSubjectType } from '../enums/partner-membership-subject-type.enum';
|
|
5
6
|
import { PartnerMembershipPackageScope } from '../enums/partner-membership-package-scope.enum';
|
|
6
|
-
/**
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* The platform pattern, not a fourth copy of it.
|
|
9
|
+
*
|
|
10
|
+
* This file used to declare its own and so did two DTOs, which is how they
|
|
11
|
+
* drifted apart: a bare @Matches regex accepts 2026-02-30, and Postgres rolls
|
|
12
|
+
* that forward to 1 March without complaining.
|
|
13
|
+
*/
|
|
14
|
+
const ISO_DATE_PATTERN = ISO_CALENDAR_DATE_PATTERN;
|
|
8
15
|
/**
|
|
9
16
|
* Clarion's stable handle for a membership subject.
|
|
10
17
|
*
|
|
@@ -150,36 +157,26 @@ export function isMemberProfileFieldPresent(profile, field) {
|
|
|
150
157
|
}
|
|
151
158
|
return true;
|
|
152
159
|
}
|
|
153
|
-
/**
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
if (Number.isNaN(parsed.getTime()))
|
|
159
|
-
return false;
|
|
160
|
-
return parsed.toISOString().slice(0, 10) === value;
|
|
161
|
-
}
|
|
160
|
+
/**
|
|
161
|
+
* Re-exported so partner code keeps one import, but there is only ONE
|
|
162
|
+
* implementation and it lives with the rest of the date contract.
|
|
163
|
+
*/
|
|
164
|
+
export { isCalendarDate };
|
|
162
165
|
/**
|
|
163
166
|
* A date of birth reduced to the calendar date partners want.
|
|
164
167
|
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
+
* Now a thin alias over the platform contract, and NARROWER than it used to be.
|
|
169
|
+
* The old body did `new Date(trimmed)` on anything that was not already
|
|
170
|
+
* `YYYY-MM-DD` and then read the result back in UTC, which under the pods' own
|
|
171
|
+
* `TZ=Africa/Nairobi` turned '04/17/1990' into '1990-04-16' and refused
|
|
172
|
+
* '17/04/1990' - the spelling most of East Africa actually writes.
|
|
173
|
+
*
|
|
174
|
+
* Ambiguous text is now refused outright. A refused date surfaces as a field an
|
|
175
|
+
* operator is asked to collect; a drifted one is a permanent wrong birthday at
|
|
176
|
+
* a partner that cannot delete a member, on the record a paramedic uses to size
|
|
177
|
+
* a drug dose.
|
|
168
178
|
*/
|
|
169
|
-
export
|
|
170
|
-
if (value === null || value === undefined)
|
|
171
|
-
return undefined;
|
|
172
|
-
if (value instanceof Date) {
|
|
173
|
-
return Number.isNaN(value.getTime()) ? undefined : value.toISOString().slice(0, 10);
|
|
174
|
-
}
|
|
175
|
-
const trimmed = String(value).trim();
|
|
176
|
-
if (trimmed === '')
|
|
177
|
-
return undefined;
|
|
178
|
-
if (ISO_DATE_PATTERN.test(trimmed))
|
|
179
|
-
return isCalendarDate(trimmed) ? trimmed : undefined;
|
|
180
|
-
const parsed = new Date(trimmed);
|
|
181
|
-
return Number.isNaN(parsed.getTime()) ? undefined : parsed.toISOString().slice(0, 10);
|
|
182
|
-
}
|
|
179
|
+
export const toPartnerCalendarDate = toCalendarDate;
|
|
183
180
|
/**
|
|
184
181
|
* Seats to buy for a member and their dependents.
|
|
185
182
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partner-membership.util.js","sourceRoot":"","sources":["../../../../../src/modules/partner/utils/partner-membership.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAoB/F
|
|
1
|
+
{"version":3,"file":"partner-membership.util.js","sourceRoot":"","sources":["../../../../../src/modules/partner/utils/partner-membership.util.ts"],"names":[],"mappings":"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"}
|