@futdevpro/nts-dynamo 1.15.230 → 1.15.233

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.
Files changed (29) hide show
  1. package/build/_modules/privacy-lifecycle/_enums/privacy-rights-value.type-enum.d.ts +7 -0
  2. package/build/_modules/privacy-lifecycle/_enums/privacy-rights-value.type-enum.d.ts.map +1 -0
  3. package/build/_modules/privacy-lifecycle/_enums/privacy-rights-value.type-enum.js +11 -0
  4. package/build/_modules/privacy-lifecycle/_enums/privacy-rights-value.type-enum.js.map +1 -0
  5. package/build/_modules/privacy-lifecycle/_models/privacy-rights-custody.interface.d.ts +74 -0
  6. package/build/_modules/privacy-lifecycle/_models/privacy-rights-custody.interface.d.ts.map +1 -0
  7. package/build/_modules/privacy-lifecycle/_models/privacy-rights-custody.interface.js +3 -0
  8. package/build/_modules/privacy-lifecycle/_models/privacy-rights-custody.interface.js.map +1 -0
  9. package/build/_modules/privacy-lifecycle/_models/privacy-rights-input.interface.d.ts +48 -0
  10. package/build/_modules/privacy-lifecycle/_models/privacy-rights-input.interface.d.ts.map +1 -0
  11. package/build/_modules/privacy-lifecycle/_models/privacy-rights-input.interface.js +3 -0
  12. package/build/_modules/privacy-lifecycle/_models/privacy-rights-input.interface.js.map +1 -0
  13. package/build/_modules/privacy-lifecycle/_types/privacy-rights-input.type.d.ts +4 -0
  14. package/build/_modules/privacy-lifecycle/_types/privacy-rights-input.type.d.ts.map +1 -0
  15. package/build/_modules/privacy-lifecycle/_types/privacy-rights-input.type.js +3 -0
  16. package/build/_modules/privacy-lifecycle/_types/privacy-rights-input.type.js.map +1 -0
  17. package/build/_modules/privacy-lifecycle/index.d.ts +6 -0
  18. package/build/_modules/privacy-lifecycle/index.d.ts.map +1 -1
  19. package/build/_modules/privacy-lifecycle/index.js +7 -1
  20. package/build/_modules/privacy-lifecycle/index.js.map +1 -1
  21. package/build/_modules/privacy-lifecycle/privacy-rights-custody.mongo-store.d.ts +49 -0
  22. package/build/_modules/privacy-lifecycle/privacy-rights-custody.mongo-store.d.ts.map +1 -0
  23. package/build/_modules/privacy-lifecycle/privacy-rights-custody.mongo-store.js +355 -0
  24. package/build/_modules/privacy-lifecycle/privacy-rights-custody.mongo-store.js.map +1 -0
  25. package/build/_modules/privacy-lifecycle/privacy-rights-input.control-service.d.ts +30 -0
  26. package/build/_modules/privacy-lifecycle/privacy-rights-input.control-service.d.ts.map +1 -0
  27. package/build/_modules/privacy-lifecycle/privacy-rights-input.control-service.js +202 -0
  28. package/build/_modules/privacy-lifecycle/privacy-rights-input.control-service.js.map +1 -0
  29. package/package.json +1 -1
@@ -0,0 +1,7 @@
1
+ /** Closed scalar kinds accepted by the confidential rights-input schema. */
2
+ export declare enum DyNTS_PrivacyRightsValue_Type {
3
+ string = "string",
4
+ number = "number",
5
+ boolean = "boolean"
6
+ }
7
+ //# sourceMappingURL=privacy-rights-value.type-enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-rights-value.type-enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/privacy-lifecycle/_enums/privacy-rights-value.type-enum.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,oBAAY,6BAA6B;IACvC,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_PrivacyRightsValue_Type = void 0;
4
+ /** Closed scalar kinds accepted by the confidential rights-input schema. */
5
+ var DyNTS_PrivacyRightsValue_Type;
6
+ (function (DyNTS_PrivacyRightsValue_Type) {
7
+ DyNTS_PrivacyRightsValue_Type["string"] = "string";
8
+ DyNTS_PrivacyRightsValue_Type["number"] = "number";
9
+ DyNTS_PrivacyRightsValue_Type["boolean"] = "boolean";
10
+ })(DyNTS_PrivacyRightsValue_Type || (exports.DyNTS_PrivacyRightsValue_Type = DyNTS_PrivacyRightsValue_Type = {}));
11
+ //# sourceMappingURL=privacy-rights-value.type-enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-rights-value.type-enum.js","sourceRoot":"","sources":["../../../../src/_modules/privacy-lifecycle/_enums/privacy-rights-value.type-enum.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC5E,IAAY,6BAIX;AAJD,WAAY,6BAA6B;IACvC,kDAAiB,CAAA;IACjB,kDAAiB,CAAA;IACjB,oDAAmB,CAAA;AACrB,CAAC,EAJW,6BAA6B,6CAA7B,6BAA6B,QAIxC"}
@@ -0,0 +1,74 @@
1
+ import { ClientSession, Connection } from 'mongoose';
2
+ import { DyNTS_AccountChallengePurpose_Type } from '../../account-security/_enums/account-challenge-purpose.type-enum';
3
+ import { DyNTS_AccountChallengeResult_Interface } from '../../account-security/_models/account-challenge-result.interface';
4
+ import { DyNTS_PrivacyRequestRecord_Interface } from './privacy-request-record.interface';
5
+ import { DyNTS_PrivacyRightsInputPolicy_Interface } from './privacy-rights-input.interface';
6
+ /** Derived from authenticated server context; requestId selects, never grants authority. */
7
+ export interface DyNTS_PrivacyRightsAuthority_Interface {
8
+ readonly requestId: string;
9
+ readonly subjectId: string;
10
+ readonly organizationId: string;
11
+ }
12
+ /** Every field is authenticated by the dedicated rights-input cipher, including expiry and challenge binding. */
13
+ export interface DyNTS_PrivacyRightsCipherContext_Interface extends DyNTS_PrivacyRightsAuthority_Interface {
14
+ readonly contractVersion: 'dynts-privacy-rights-custody/1';
15
+ readonly inputId: string;
16
+ readonly requestType: string;
17
+ readonly requestRevision: number;
18
+ readonly policyVersion: string;
19
+ readonly challengeId: string;
20
+ readonly createdAt: string;
21
+ readonly expiresAt: string;
22
+ }
23
+ /** Only authenticated ciphertext leaves the dedicated, externally provisioned keyring. */
24
+ export interface DyNTS_PrivacyRightsSealed_Interface {
25
+ readonly keyId: string;
26
+ readonly ciphertext: string;
27
+ }
28
+ /** No export/download grant can open this purpose-separated execution-only input. */
29
+ export interface DyNTS_PrivacyRightsCipher_Interface {
30
+ seal(plaintext: string, context: DyNTS_PrivacyRightsCipherContext_Interface): DyNTS_PrivacyRightsSealed_Interface;
31
+ open(sealed: DyNTS_PrivacyRightsSealed_Interface, context: DyNTS_PrivacyRightsCipherContext_Interface): string;
32
+ }
33
+ /** Content-free intake receipt; never includes input, credential hash or ciphertext. */
34
+ export interface DyNTS_PrivacyRightsReceipt_Interface {
35
+ readonly contractVersion: 'dynts-privacy-rights-receipt/1';
36
+ readonly inputId: string;
37
+ readonly requestId: string;
38
+ readonly created: boolean;
39
+ readonly expiresAt: string;
40
+ }
41
+ /** Internal database shape. No unkeyed low-entropy replacement-value fingerprint is persisted. */
42
+ export interface DyNTS_PrivacyRightsCustodyRecord_Interface extends DyNTS_PrivacyRightsCipherContext_Interface {
43
+ _id: string;
44
+ credentialHash: string;
45
+ keyId: string;
46
+ ciphertext: string;
47
+ }
48
+ /** Shared custody over one existing connection and caller-owned strong transaction. */
49
+ export interface DyNTS_PrivacyRightsCustodySettings_Interface {
50
+ readonly connection: Connection;
51
+ readonly maxOperationTimeMs: number;
52
+ readonly retentionMs: number;
53
+ readonly policies: readonly DyNTS_PrivacyRightsInputPolicy_Interface[];
54
+ readonly currentPolicyVersion: string;
55
+ readonly cipher: DyNTS_PrivacyRightsCipher_Interface;
56
+ /** Must WRITE-lock the owned request/subject eligibility in this session, not perform a snapshot-only read. */
57
+ readonly lockRequest: (authority: DyNTS_PrivacyRightsAuthority_Interface, session: ClientSession) => Promise<DyNTS_PrivacyRequestRecord_Interface>;
58
+ /** Must use the existing challenge service with a SAME-session adapter. Failure must abort the transaction. */
59
+ readonly consumeChallenge: (set: {
60
+ token: string;
61
+ purpose: DyNTS_AccountChallengePurpose_Type;
62
+ subjectId: string;
63
+ session: ClientSession;
64
+ now: Date;
65
+ }) => Promise<DyNTS_AccountChallengeResult_Interface>;
66
+ /** Same-session CAS: identityVerified at expectedRevision -> scoped at expectedRevision + 1. */
67
+ readonly acceptRequest: (set: {
68
+ authority: DyNTS_PrivacyRightsAuthority_Interface;
69
+ expectedRevision: number;
70
+ acceptedAt: string;
71
+ session: ClientSession;
72
+ }) => Promise<DyNTS_PrivacyRequestRecord_Interface>;
73
+ }
74
+ //# sourceMappingURL=privacy-rights-custody.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-rights-custody.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/privacy-lifecycle/_models/privacy-rights-custody.interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=privacy-rights-custody.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-rights-custody.interface.js","sourceRoot":"","sources":["../../../../src/_modules/privacy-lifecycle/_models/privacy-rights-custody.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ import { DyNTS_PrivacyRequest_Type } from '../_enums/privacy-request.type-enum';
2
+ import { DyNTS_PrivacyRightsValue_Type } from '../_enums/privacy-rights-value.type-enum';
3
+ /** One proposed revision. Values are confidential execution input, never lifecycle evidence. */
4
+ export interface DyNTS_PrivacyRightsReplacement_Interface {
5
+ readonly fieldCode: string;
6
+ readonly expectedRevision: number;
7
+ readonly value: string | number | boolean | null;
8
+ }
9
+ /** Trusted product field schema. It validates but never transforms the previewed value. */
10
+ export interface DyNTS_PrivacyRightsFieldPolicy_Interface {
11
+ readonly fieldCode: string;
12
+ readonly valueType: DyNTS_PrivacyRightsValue_Type;
13
+ readonly nullable: boolean;
14
+ readonly maxStringBytes: number;
15
+ readonly validate: (value: string | number | boolean | null) => boolean;
16
+ }
17
+ /** No defaults: product-approved fields, purposes and limits must be supplied explicitly. */
18
+ export interface DyNTS_PrivacyRightsInputPolicy_Interface {
19
+ readonly policyVersion: string;
20
+ readonly maxInputBytes: number;
21
+ readonly maxEntries: number;
22
+ readonly fields: readonly DyNTS_PrivacyRightsFieldPolicy_Interface[];
23
+ readonly purposeCodes: readonly string[];
24
+ }
25
+ /** Server-derived request binding; this parser does not create or consume step-up credentials. */
26
+ export interface DyNTS_PrivacyRightsInputContext_Interface {
27
+ readonly requestId: string;
28
+ readonly type: DyNTS_PrivacyRequest_Type;
29
+ readonly revision: number;
30
+ }
31
+ /** Common immutable envelope binding a preview to one request revision and policy. */
32
+ export interface DyNTS_PrivacyRightsInputBase_Interface {
33
+ readonly contractVersion: 'dynts-privacy-rights-input/1';
34
+ readonly requestId: string;
35
+ readonly policyVersion: string;
36
+ readonly expectedRequestRevision: number;
37
+ }
38
+ /** Structured replacements, including immutable-field proposals for a later explicit decision. */
39
+ export interface DyNTS_PrivacyRightsRectificationInput_Interface extends DyNTS_PrivacyRightsInputBase_Interface {
40
+ readonly type: DyNTS_PrivacyRequest_Type.rectification;
41
+ readonly replacements: readonly DyNTS_PrivacyRightsReplacement_Interface[];
42
+ }
43
+ /** Purpose selection carries neither a caller-declared legal basis nor an exception grant. */
44
+ export interface DyNTS_PrivacyRightsPurposeInput_Interface extends DyNTS_PrivacyRightsInputBase_Interface {
45
+ readonly type: DyNTS_PrivacyRequest_Type.restriction | DyNTS_PrivacyRequest_Type.objection;
46
+ readonly purposeCodes: readonly string[];
47
+ }
48
+ //# sourceMappingURL=privacy-rights-input.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-rights-input.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/privacy-lifecycle/_models/privacy-rights-input.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AAEzF,gGAAgG;AAChG,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CAClD;AAED,2FAA2F;AAC3F,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,6BAA6B,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC;CACzE;AAED,6FAA6F;AAC7F,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,wCAAwC,EAAE,CAAC;IACrE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,kGAAkG;AAClG,MAAM,WAAW,yCAAyC;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,sFAAsF;AACtF,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,eAAe,EAAE,8BAA8B,CAAC;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;CAC1C;AAED,kGAAkG;AAClG,MAAM,WAAW,+CAAgD,SAAQ,sCAAsC;IAC7G,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,aAAa,CAAC;IACvD,QAAQ,CAAC,YAAY,EAAE,SAAS,wCAAwC,EAAE,CAAC;CAC5E;AAED,8FAA8F;AAC9F,MAAM,WAAW,yCAA0C,SAAQ,sCAAsC;IACvG,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,WAAW,GAAG,yBAAyB,CAAC,SAAS,CAAC;IAC3F,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=privacy-rights-input.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-rights-input.interface.js","sourceRoot":"","sources":["../../../../src/_modules/privacy-lifecycle/_models/privacy-rights-input.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { DyNTS_PrivacyRightsPurposeInput_Interface, DyNTS_PrivacyRightsRectificationInput_Interface } from '../_models/privacy-rights-input.interface';
2
+ /** Confidential normalized input; do not expose it through request views, logs or audit records. */
3
+ export type DyNTS_PrivacyRightsInput_Type = DyNTS_PrivacyRightsRectificationInput_Interface | DyNTS_PrivacyRightsPurposeInput_Interface;
4
+ //# sourceMappingURL=privacy-rights-input.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-rights-input.type.d.ts","sourceRoot":"","sources":["../../../../src/_modules/privacy-lifecycle/_types/privacy-rights-input.type.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yCAAyC,EACzC,+CAA+C,EAChD,MAAM,2CAA2C,CAAC;AAEnD,oGAAoG;AACpG,MAAM,MAAM,6BAA6B,GACvC,+CAA+C,GAAG,yCAAyC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=privacy-rights-input.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-rights-input.type.js","sourceRoot":"","sources":["../../../../src/_modules/privacy-lifecycle/_types/privacy-rights-input.type.ts"],"names":[],"mappings":""}
@@ -1,4 +1,10 @@
1
1
  export { DyNTS_PrivacyLifecycle_ControlService } from './privacy-lifecycle.control-service';
2
+ export { DyNTS_PrivacyRightsInput_ControlService } from './privacy-rights-input.control-service';
3
+ export { DyNTS_PrivacyRightsCustody_MongoStore } from './privacy-rights-custody.mongo-store';
4
+ export { DyNTS_PrivacyRightsAuthority_Interface, DyNTS_PrivacyRightsCipherContext_Interface, DyNTS_PrivacyRightsCipher_Interface, DyNTS_PrivacyRightsCustodyRecord_Interface, DyNTS_PrivacyRightsCustodySettings_Interface, DyNTS_PrivacyRightsReceipt_Interface, DyNTS_PrivacyRightsSealed_Interface } from './_models/privacy-rights-custody.interface';
5
+ export { DyNTS_PrivacyRightsValue_Type } from './_enums/privacy-rights-value.type-enum';
6
+ export { DyNTS_PrivacyRightsInput_Type } from './_types/privacy-rights-input.type';
7
+ export { DyNTS_PrivacyRightsFieldPolicy_Interface, DyNTS_PrivacyRightsInputBase_Interface, DyNTS_PrivacyRightsInputContext_Interface, DyNTS_PrivacyRightsInputPolicy_Interface, DyNTS_PrivacyRightsPurposeInput_Interface, DyNTS_PrivacyRightsRectificationInput_Interface, DyNTS_PrivacyRightsReplacement_Interface } from './_models/privacy-rights-input.interface';
2
8
  export { DyNTS_PrivacyMutationGate_MongoStore } from './privacy-mutation-gate.mongo-store';
3
9
  export { DyNTS_PrivacyMutationGateClosure_Interface, DyNTS_PrivacyMutationGateIdentity_Interface, DyNTS_PrivacyMutationGateSettings_Interface } from './_models/privacy-mutation-gate.interface';
4
10
  export { DyNTS_PrivacyRequestCursor_ControlService } from './privacy-request-cursor.control-service';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/privacy-lifecycle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,MAAM,qCAAqC,CAAC;AAC5F,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EACL,0CAA0C,EAC1C,2CAA2C,EAC3C,2CAA2C,EAC5C,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,yCAAyC,EAAE,MAAM,0CAA0C,CAAC;AACrG,OAAO,EAAE,kCAAkC,EAAE,MAAM,kCAAkC,CAAC;AACtF,OAAO,EACL,gDAAgD,EACjD,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,0CAA0C,EAAE,MAAM,2CAA2C,CAAC;AACvG,OAAO,EACL,4DAA4D,EAC5D,wCAAwC,EACzC,MAAM,+DAA+D,CAAC;AACvE,OAAO,EAAE,sCAAsC,EAAE,MAAM,uCAAuC,CAAC;AAC/F,OAAO,EAAE,wCAAwC,EAAE,MAAM,yCAAyC,CAAC;AACnG,OAAO,EAAE,iCAAiC,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EACL,4CAA4C,EAC7C,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAAE,mCAAmC,EAAE,MAAM,+CAA+C,CAAC;AACpG,OAAO,EACL,0CAA0C,EAC3C,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAAE,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,yCAAyC,EAAE,MAAM,iDAAiD,CAAC;AAC5G,OAAO,EAAE,yCAAyC,EAAE,MAAM,iDAAiD,CAAC;AAC5G,OAAO,EAAE,sCAAsC,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAC7F,OAAO,EAAE,uCAAuC,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,EAAE,wCAAwC,EAAE,MAAM,gDAAgD,CAAC;AAC1G,OAAO,EAAE,mCAAmC,EAAE,MAAM,2CAA2C,CAAC;AAChG,OAAO,EACL,kDAAkD,EAClD,iDAAiD,EAClD,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EACL,+CAA+C,EAChD,MAAM,wDAAwD,CAAC;AAChE,OAAO,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,EAAE,kCAAkC,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,EAAE,mCAAmC,EAAE,MAAM,2CAA2C,CAAC;AAChG,OAAO,EAAE,qCAAqC,EAAE,MAAM,6CAA6C,CAAC;AACpG,OAAO,EACL,6CAA6C,EAC7C,uCAAuC,EACvC,sCAAsC,EACtC,uCAAuC,EACxC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,wCAAwC,EACxC,gDAAgD,EACjD,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,2CAA2C,EAAE,MAAM,oDAAoD,CAAC;AACjH,OAAO,EACL,uDAAuD,EACxD,MAAM,iEAAiE,CAAC;AACzE,OAAO,EAAE,4CAA4C,EAAE,MAAM,qDAAqD,CAAC;AACnH,OAAO,EACL,0CAA0C,EAC3C,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,sCAAsC,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,0CAA0C,EAAE,MAAM,mDAAmD,CAAC;AAC/G,OAAO,EAAE,kCAAkC,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,EACL,qDAAqD,EACtD,MAAM,+DAA+D,CAAC;AACvE,OAAO,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,EACL,yCAAyC,EAC1C,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EACL,kCAAkC,EAClC,uCAAuC,EACxC,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,wCAAwC,EACxC,mDAAmD,EACpD,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,oCAAoC,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,EAAE,kCAAkC,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,EACL,8CAA8C,EAC9C,2CAA2C,EAC3C,4CAA4C,EAC5C,iDAAiD,EACjD,2CAA2C,EAC3C,+CAA+C,EAC/C,2CAA2C,EAC3C,2CAA2C,EAC3C,0CAA0C,EAC1C,iDAAiD,EACjD,yCAAyC,EACzC,0CAA0C,EAC3C,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,iDAAiD,EACjD,kDAAkD,EAClD,0CAA0C,EAC1C,yCAAyC,EAC1C,MAAM,2CAA2C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/privacy-lifecycle/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DyNTS_PrivacyRequest_Type = exports.DyNTS_PrivacyRequestState_Type = exports.DyNTS_PrivacyContributorOutcome_Type = exports.DyNTS_PrivacyContributorExecutionMode_Type = exports.DyNTS_PrivacyContributorAction_Type = exports.DyNTS_PrivacyConsentAuthorizationReason_Type = exports.DyNTS_PrivacyConsentDecision_Type = exports.DyNTS_PrivacyExportBundle_ControlService = exports.DyNTS_PrivacyExportArtifact_MongoStore = exports.DyNTS_privacyExportArtifactContributorId = exports.DyNTS_PrivacyExportArtifactPrivacyContributor_ControlService = exports.DyNTS_PrivacyExportArtifact_ControlService = exports.DyNTS_PrivacyConsentAuthorization_ControlService = exports.DyNTS_PrivacyLedger_ControlService = exports.DyNTS_PrivacyRequestCursor_ControlService = exports.DyNTS_PrivacyMutationGate_MongoStore = exports.DyNTS_PrivacyLifecycle_ControlService = void 0;
3
+ exports.DyNTS_PrivacyRequest_Type = exports.DyNTS_PrivacyRequestState_Type = exports.DyNTS_PrivacyContributorOutcome_Type = exports.DyNTS_PrivacyContributorExecutionMode_Type = exports.DyNTS_PrivacyContributorAction_Type = exports.DyNTS_PrivacyConsentAuthorizationReason_Type = exports.DyNTS_PrivacyConsentDecision_Type = exports.DyNTS_PrivacyExportBundle_ControlService = exports.DyNTS_PrivacyExportArtifact_MongoStore = exports.DyNTS_privacyExportArtifactContributorId = exports.DyNTS_PrivacyExportArtifactPrivacyContributor_ControlService = exports.DyNTS_PrivacyExportArtifact_ControlService = exports.DyNTS_PrivacyConsentAuthorization_ControlService = exports.DyNTS_PrivacyLedger_ControlService = exports.DyNTS_PrivacyRequestCursor_ControlService = exports.DyNTS_PrivacyMutationGate_MongoStore = exports.DyNTS_PrivacyRightsValue_Type = exports.DyNTS_PrivacyRightsCustody_MongoStore = exports.DyNTS_PrivacyRightsInput_ControlService = exports.DyNTS_PrivacyLifecycle_ControlService = void 0;
4
4
  var privacy_lifecycle_control_service_1 = require("./privacy-lifecycle.control-service");
5
5
  Object.defineProperty(exports, "DyNTS_PrivacyLifecycle_ControlService", { enumerable: true, get: function () { return privacy_lifecycle_control_service_1.DyNTS_PrivacyLifecycle_ControlService; } });
6
+ var privacy_rights_input_control_service_1 = require("./privacy-rights-input.control-service");
7
+ Object.defineProperty(exports, "DyNTS_PrivacyRightsInput_ControlService", { enumerable: true, get: function () { return privacy_rights_input_control_service_1.DyNTS_PrivacyRightsInput_ControlService; } });
8
+ var privacy_rights_custody_mongo_store_1 = require("./privacy-rights-custody.mongo-store");
9
+ Object.defineProperty(exports, "DyNTS_PrivacyRightsCustody_MongoStore", { enumerable: true, get: function () { return privacy_rights_custody_mongo_store_1.DyNTS_PrivacyRightsCustody_MongoStore; } });
10
+ var privacy_rights_value_type_enum_1 = require("./_enums/privacy-rights-value.type-enum");
11
+ Object.defineProperty(exports, "DyNTS_PrivacyRightsValue_Type", { enumerable: true, get: function () { return privacy_rights_value_type_enum_1.DyNTS_PrivacyRightsValue_Type; } });
6
12
  var privacy_mutation_gate_mongo_store_1 = require("./privacy-mutation-gate.mongo-store");
7
13
  Object.defineProperty(exports, "DyNTS_PrivacyMutationGate_MongoStore", { enumerable: true, get: function () { return privacy_mutation_gate_mongo_store_1.DyNTS_PrivacyMutationGate_MongoStore; } });
8
14
  var privacy_request_cursor_control_service_1 = require("./privacy-request-cursor.control-service");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/privacy-lifecycle/index.ts"],"names":[],"mappings":";;;AAAA,yFAA4F;AAAnF,0JAAA,qCAAqC,OAAA;AAC9C,yFAA2F;AAAlF,yJAAA,oCAAoC,OAAA;AAM7C,mGAAqG;AAA5F,mKAAA,yCAAyC,OAAA;AAClD,mFAAsF;AAA7E,oJAAA,kCAAkC,OAAA;AAC3C,iHAEyD;AADvD,iLAAA,gDAAgD,OAAA;AAElD,qGAAuG;AAA9F,qKAAA,0CAA0C,OAAA;AACnD,6IAGuE;AAFrE,2MAAA,4DAA4D,OAAA;AAC5D,uLAAA,wCAAwC,OAAA;AAE1C,6FAA+F;AAAtF,6JAAA,sCAAsC,OAAA;AAC/C,iGAAmG;AAA1F,iKAAA,wCAAwC,OAAA;AACjD,kGAAgG;AAAvF,uJAAA,iCAAiC,OAAA;AAC1C,0HAEiE;AAD/D,8KAAA,4CAA4C,OAAA;AAE9C,sGAAoG;AAA3F,2JAAA,mCAAmC,OAAA;AAC5C,sHAE+D;AAD7D,0KAAA,0CAA0C,OAAA;AAE5C,wGAAsG;AAA7F,6JAAA,oCAAoC,OAAA;AAC7C,4FAA0F;AAAjF,iJAAA,8BAA8B,OAAA;AACvC,gFAA+E;AAAtE,sIAAA,yBAAyB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/privacy-lifecycle/index.ts"],"names":[],"mappings":";;;AAAA,yFAA4F;AAAnF,0JAAA,qCAAqC,OAAA;AAC9C,+FAAiG;AAAxF,+JAAA,uCAAuC,OAAA;AAChD,2FAA6F;AAApF,2JAAA,qCAAqC,OAAA;AAU9C,0FAAwF;AAA/E,+IAAA,6BAA6B,OAAA;AAWtC,yFAA2F;AAAlF,yJAAA,oCAAoC,OAAA;AAM7C,mGAAqG;AAA5F,mKAAA,yCAAyC,OAAA;AAClD,mFAAsF;AAA7E,oJAAA,kCAAkC,OAAA;AAC3C,iHAEyD;AADvD,iLAAA,gDAAgD,OAAA;AAElD,qGAAuG;AAA9F,qKAAA,0CAA0C,OAAA;AACnD,6IAGuE;AAFrE,2MAAA,4DAA4D,OAAA;AAC5D,uLAAA,wCAAwC,OAAA;AAE1C,6FAA+F;AAAtF,6JAAA,sCAAsC,OAAA;AAC/C,iGAAmG;AAA1F,iKAAA,wCAAwC,OAAA;AACjD,kGAAgG;AAAvF,uJAAA,iCAAiC,OAAA;AAC1C,0HAEiE;AAD/D,8KAAA,4CAA4C,OAAA;AAE9C,sGAAoG;AAA3F,2JAAA,mCAAmC,OAAA;AAC5C,sHAE+D;AAD7D,0KAAA,0CAA0C,OAAA;AAE5C,wGAAsG;AAA7F,6JAAA,oCAAoC,OAAA;AAC7C,4FAA0F;AAAjF,iJAAA,8BAA8B,OAAA;AACvC,gFAA+E;AAAtE,sIAAA,yBAAyB,OAAA"}
@@ -0,0 +1,49 @@
1
+ import { ClientSession } from 'mongoose';
2
+ import { DyNTS_PrivacyRightsAuthority_Interface, DyNTS_PrivacyRightsCustodySettings_Interface, DyNTS_PrivacyRightsReceipt_Interface } from './_models/privacy-rights-custody.interface';
3
+ import { DyNTS_PrivacyRightsInput_Type } from './_types/privacy-rights-input.type';
4
+ /**
5
+ * Atomic confidential rights-input custody. Call ensureReady during bootstrap, then use the SAME strong
6
+ * transaction for request/subject locking, challenge consumption and encrypted creation. No nested transaction.
7
+ * Injected callbacks are trusted composition, not browser authority. Never catch a failure and commit anyway.
8
+ */
9
+ export declare class DyNTS_PrivacyRightsCustody_MongoStore {
10
+ private readonly settings;
11
+ private readonly schemas;
12
+ private readonly ownedErrors;
13
+ private isReady;
14
+ /** Captures explicit lifetime, policy history and purpose-separated encryption without reading secrets. */
15
+ constructor(settings: DyNTS_PrivacyRightsCustodySettings_Interface);
16
+ /** Creates a strict collection and unique challenge binding outside all business transactions. */
17
+ ensureReady(): Promise<void>;
18
+ /** Commits with the caller's transaction; replay requires the same credential and identical normalized input. */
19
+ intake(set: {
20
+ authority: DyNTS_PrivacyRightsAuthority_Interface;
21
+ input: unknown;
22
+ token: string;
23
+ }, session: ClientSession): Promise<DyNTS_PrivacyRightsReceipt_Interface>;
24
+ /** Execution-only callback; no plaintext read/list/download method or arbitrary callback return value. */
25
+ withExecutionInput(set: {
26
+ authority: DyNTS_PrivacyRightsAuthority_Interface;
27
+ task: (input: DyNTS_PrivacyRightsInput_Type, session: ClientSession) => Promise<void>;
28
+ }, session: ClientSession): Promise<void>;
29
+ /** Erases ciphertext and grant-binding data only after expiry or terminal lifecycle, then proves no residue. */
30
+ eraseInput(authorityValue: DyNTS_PrivacyRightsAuthority_Interface, session: ClientSession): Promise<number>;
31
+ private lockRequest;
32
+ private parse;
33
+ private open;
34
+ private context;
35
+ private assertRecord;
36
+ private authority;
37
+ private databaseTime;
38
+ private execute;
39
+ private purpose;
40
+ private receipt;
41
+ private key;
42
+ private positive;
43
+ private code;
44
+ private options;
45
+ private collection;
46
+ private error;
47
+ private validator;
48
+ }
49
+ //# sourceMappingURL=privacy-rights-custody.mongo-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-rights-custody.mongo-store.d.ts","sourceRoot":"","sources":["../../../src/_modules/privacy-lifecycle/privacy-rights-custody.mongo-store.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAS,MAAM,UAAU,CAAC;AAOhD,OAAO,EACL,sCAAsC,EAGtC,4CAA4C,EAC5C,oCAAoC,EAErC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAGnF;;;;GAIG;AACH,qBAAa,qCAAqC;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+C;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+D;IACvF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiC;IAC7D,OAAO,CAAC,OAAO,CAAkB;IAEjC,2GAA2G;gBAC/F,QAAQ,EAAE,4CAA4C;IA8BlE,kGAAkG;IACrF,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAoCzC,iHAAiH;IACpG,MAAM,CAAC,GAAG,EAAE;QACvB,SAAS,EAAE,sCAAsC,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;KAClF,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,oCAAoC,CAAC;IAiGzE,0GAA0G;IAC7F,kBAAkB,CAAC,GAAG,EAAE;QACnC,SAAS,EAAE,sCAAsC,CAAC;QAClD,IAAI,EAAE,CAAC,KAAK,EAAE,6BAA6B,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACvF,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBzC,gHAAgH;IACnG,UAAU,CAAC,cAAc,EAAE,sCAAsC,EAC5E,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;YAqC5B,WAAW;IAqBzB,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,IAAI;IAYZ,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,SAAS;YAcH,YAAY;YAcZ,OAAO;IA+BrB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,SAAS;CAgBlB"}
@@ -0,0 +1,355 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_PrivacyRightsCustody_MongoStore = void 0;
4
+ const node_crypto_1 = require("node:crypto");
5
+ const node_util_1 = require("node:util");
6
+ const mongoose_1 = require("mongoose");
7
+ const account_challenge_purpose_type_enum_1 = require("../account-security/_enums/account-challenge-purpose.type-enum");
8
+ const privacy_request_state_type_enum_1 = require("./_enums/privacy-request-state.type-enum");
9
+ const privacy_request_type_enum_1 = require("./_enums/privacy-request.type-enum");
10
+ const privacy_rights_input_control_service_1 = require("./privacy-rights-input.control-service");
11
+ /**
12
+ * Atomic confidential rights-input custody. Call ensureReady during bootstrap, then use the SAME strong
13
+ * transaction for request/subject locking, challenge consumption and encrypted creation. No nested transaction.
14
+ * Injected callbacks are trusted composition, not browser authority. Never catch a failure and commit anyway.
15
+ */
16
+ class DyNTS_PrivacyRightsCustody_MongoStore {
17
+ settings;
18
+ schemas;
19
+ ownedErrors = new WeakSet();
20
+ isReady = false;
21
+ /** Captures explicit lifetime, policy history and purpose-separated encryption without reading secrets. */
22
+ constructor(settings) {
23
+ try {
24
+ if (!settings?.connection || typeof settings.connection.startSession !== 'function'
25
+ || !this.positive(settings.maxOperationTimeMs, 2_147_483_647)
26
+ || !this.positive(settings.retentionMs, 2_592_000_000)
27
+ || !Array.isArray(settings.policies) || !this.positive(settings.policies.length, 64)
28
+ || typeof settings.cipher?.seal !== 'function' || typeof settings.cipher?.open !== 'function'
29
+ || typeof settings.lockRequest !== 'function' || typeof settings.consumeChallenge !== 'function'
30
+ || typeof settings.acceptRequest !== 'function') {
31
+ throw new Error();
32
+ }
33
+ const schemas = new Map();
34
+ for (const policy of settings.policies) {
35
+ if (schemas.has(policy.policyVersion)) {
36
+ throw new Error();
37
+ }
38
+ schemas.set(policy.policyVersion, new privacy_rights_input_control_service_1.DyNTS_PrivacyRightsInput_ControlService(policy));
39
+ }
40
+ if (!schemas.has(settings.currentPolicyVersion)) {
41
+ throw new Error();
42
+ }
43
+ this.settings = Object.freeze({ ...settings });
44
+ this.schemas = schemas;
45
+ }
46
+ catch {
47
+ throw this.error('SETTINGS_INVALID');
48
+ }
49
+ }
50
+ /** Creates a strict collection and unique challenge binding outside all business transactions. */
51
+ async ensureReady() {
52
+ if (this.isReady) {
53
+ return;
54
+ }
55
+ try {
56
+ try {
57
+ await this.settings.connection.db.createCollection('dynts_privacy_rights_inputs', {
58
+ validator: this.validator(), validationLevel: 'strict', validationAction: 'error',
59
+ maxTimeMS: this.settings.maxOperationTimeMs,
60
+ });
61
+ }
62
+ catch (error) {
63
+ if (!(error instanceof mongoose_1.mongo.MongoServerError) || error.code !== 48) {
64
+ throw error;
65
+ }
66
+ }
67
+ const information = await this.settings.connection.db.listCollections({ name: 'dynts_privacy_rights_inputs' }, { nameOnly: false, maxTimeMS: this.settings.maxOperationTimeMs }).next();
68
+ if (!(0, node_util_1.isDeepStrictEqual)(information?.options?.validator, this.validator())
69
+ || information?.options?.validationLevel !== 'strict' || information?.options?.validationAction !== 'error') {
70
+ throw this.error('SCHEMA_MIGRATION_REQUIRED');
71
+ }
72
+ await this.collection().createIndex({ challengeId: 1 }, {
73
+ unique: true, name: 'uq_dynts_rights_challenge', maxTimeMS: this.settings.maxOperationTimeMs,
74
+ });
75
+ this.isReady = true;
76
+ }
77
+ catch (error) {
78
+ if (error instanceof Error && this.ownedErrors.has(error)) {
79
+ throw error;
80
+ }
81
+ throw this.error('NOT_READY');
82
+ }
83
+ }
84
+ /** Commits with the caller's transaction; replay requires the same credential and identical normalized input. */
85
+ async intake(set, session) {
86
+ return this.execute(session, async () => {
87
+ const authority = this.authority(set?.authority);
88
+ if (typeof set.token !== 'string' || !/^[A-Za-z0-9_-]{43,512}$/u.test(set.token)) {
89
+ throw this.error('CHALLENGE_INVALID');
90
+ }
91
+ const request = await this.lockRequest(authority, session);
92
+ const existing = await this.collection().findOne({ _id: this.key(authority) }, this.options(session));
93
+ const now = await this.databaseTime();
94
+ const credentialHash = (0, node_crypto_1.createHash)('sha256').update(set.token).digest('hex');
95
+ if (Date.parse(request.deadlineAt) <= now.getTime()) {
96
+ throw this.error('REQUEST_EXPIRED');
97
+ }
98
+ if (existing) {
99
+ this.assertRecord(existing, authority, now);
100
+ if (existing.credentialHash !== credentialHash || existing.requestType !== request.type) {
101
+ throw this.error('REPLAY_CONFLICT');
102
+ }
103
+ const parsed = this.parse(set.input, existing);
104
+ const original = this.open(existing);
105
+ if (JSON.stringify(parsed) !== JSON.stringify(original)) {
106
+ throw this.error('REPLAY_CONFLICT');
107
+ }
108
+ return this.receipt(existing, false);
109
+ }
110
+ if (request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.identityVerified
111
+ || !!request.executionStartedAt || !request.identityVerifiedAt) {
112
+ throw this.error('REQUEST_STATE_INVALID');
113
+ }
114
+ const policyVersion = typeof set.input === 'object' && set.input !== null
115
+ ? Object.getOwnPropertyDescriptor(set.input, 'policyVersion')?.value : undefined;
116
+ if (typeof policyVersion !== 'string' || policyVersion !== this.settings.currentPolicyVersion) {
117
+ throw this.error('INPUT_INVALID');
118
+ }
119
+ const inputContext = {
120
+ contractVersion: 'dynts-privacy-rights-custody/1', ...authority, inputId: (0, node_crypto_1.randomUUID)(),
121
+ requestType: request.type, requestRevision: request.revision, policyVersion: policyVersion,
122
+ challengeId: '', createdAt: now.toISOString(),
123
+ expiresAt: new Date(Math.min(now.getTime() + this.settings.retentionMs, Date.parse(request.deadlineAt))).toISOString(),
124
+ };
125
+ const parsed = this.parse(set.input, inputContext);
126
+ const purpose = this.purpose(request.type);
127
+ const consumed = await this.settings.consumeChallenge({
128
+ token: set.token, subjectId: authority.subjectId, purpose: purpose, session: session, now: now,
129
+ });
130
+ if (!consumed || !this.code(consumed.challengeId) || consumed.subjectId !== authority.subjectId
131
+ || consumed.purpose !== purpose) {
132
+ throw this.error('CHALLENGE_INVALID');
133
+ }
134
+ const context = Object.freeze({
135
+ ...inputContext, challengeId: consumed.challengeId,
136
+ });
137
+ const plaintext = JSON.stringify(parsed);
138
+ const sealed = this.settings.cipher.seal(plaintext, context);
139
+ if (!sealed || !this.code(sealed.keyId) || typeof sealed.ciphertext !== 'string'
140
+ || !sealed.ciphertext || sealed.ciphertext.length > 131_072 || sealed.ciphertext === plaintext) {
141
+ throw this.error('ENCRYPTION_FAILED');
142
+ }
143
+ const record = {
144
+ ...context, _id: this.key(authority), credentialHash: credentialHash,
145
+ keyId: sealed.keyId, ciphertext: sealed.ciphertext,
146
+ };
147
+ // Authenticate the actual encryption result before durable storage. Never persist a plaintext checksum.
148
+ if (JSON.stringify(this.open(record)) !== plaintext) {
149
+ throw this.error('ENCRYPTION_FAILED');
150
+ }
151
+ await this.collection().insertOne(record, this.options(session));
152
+ const accepted = await this.settings.acceptRequest({
153
+ authority: authority, expectedRevision: request.revision, acceptedAt: context.createdAt, session: session,
154
+ });
155
+ if (accepted?.requestId !== authority.requestId || accepted.subjectId !== authority.subjectId
156
+ || accepted.organizationId !== authority.organizationId || accepted.type !== request.type
157
+ || accepted.revision !== request.revision + 1 || accepted.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.scoped
158
+ || accepted.scopedAt !== context.createdAt || accepted.identityVerifiedAt !== request.identityVerifiedAt
159
+ || !!accepted.executionStartedAt || !!accepted.cancelledAt) {
160
+ throw this.error('ACCEPTANCE_CONFLICT');
161
+ }
162
+ return this.receipt(record, true);
163
+ });
164
+ }
165
+ /** Execution-only callback; no plaintext read/list/download method or arbitrary callback return value. */
166
+ async withExecutionInput(set, session) {
167
+ await this.execute(session, async () => {
168
+ const authority = this.authority(set?.authority);
169
+ const request = await this.lockRequest(authority, session);
170
+ if (request.state !== privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.executing || typeof set.task !== 'function') {
171
+ throw this.error('EXECUTION_DENIED');
172
+ }
173
+ const record = await this.collection().findOne({ _id: this.key(authority) }, this.options(session));
174
+ const now = await this.databaseTime();
175
+ this.assertRecord(record, authority, now);
176
+ if (record.requestType !== request.type || Date.parse(request.deadlineAt) <= now.getTime()) {
177
+ throw this.error('EXECUTION_DENIED');
178
+ }
179
+ await set.task(this.open(record), session);
180
+ });
181
+ }
182
+ /** Erases ciphertext and grant-binding data only after expiry or terminal lifecycle, then proves no residue. */
183
+ async eraseInput(authorityValue, session) {
184
+ return this.execute(session, async () => {
185
+ const authority = this.authority(authorityValue);
186
+ // Cleanup must also support cancelled/rejected requests, unlike intake and execution admission.
187
+ const request = await this.settings.lockRequest(authority, session);
188
+ if (request?.requestId !== authority.requestId || request.subjectId !== authority.subjectId
189
+ || request.organizationId !== authority.organizationId) {
190
+ throw this.error('AUTHORITY_INVALID');
191
+ }
192
+ const record = await this.collection().findOne({ _id: this.key(authority) }, this.options(session));
193
+ if (!record) {
194
+ return 0;
195
+ }
196
+ const terminal = [privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.completed, privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.cancelled,
197
+ privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.rejectedWithReason, privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.failedTerminal]
198
+ .includes(request.state);
199
+ const now = await this.databaseTime();
200
+ if (!terminal && !(Date.parse(record.expiresAt) <= now.getTime())) {
201
+ throw this.error('ERASURE_NOT_ELIGIBLE');
202
+ }
203
+ const removed = await this.collection().deleteOne({
204
+ _id: record._id, inputId: record.inputId,
205
+ }, this.options(session));
206
+ if (removed.deletedCount !== 1 || await this.collection().findOne({ _id: record._id }, this.options(session))) {
207
+ throw this.error('ERASURE_NOT_VERIFIED');
208
+ }
209
+ return 1;
210
+ });
211
+ }
212
+ async lockRequest(authority, session) {
213
+ const request = await this.settings.lockRequest(authority, session);
214
+ if (request?.requestId !== authority.requestId || request.subjectId !== authority.subjectId
215
+ || request.organizationId !== authority.organizationId || !Number.isSafeInteger(request.revision)
216
+ || request.revision < 0 || !Number.isFinite(Date.parse(request.deadlineAt))) {
217
+ throw this.error('AUTHORITY_INVALID');
218
+ }
219
+ this.purpose(request.type);
220
+ if (request.cancelledAt || request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.cancelled
221
+ || request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.failedTerminal
222
+ || request.state === privacy_request_state_type_enum_1.DyNTS_PrivacyRequestState_Type.rejectedWithReason) {
223
+ throw this.error('REQUEST_STATE_INVALID');
224
+ }
225
+ return request;
226
+ }
227
+ parse(value, context) {
228
+ const schema = this.schemas.get(context.policyVersion);
229
+ if (!schema) {
230
+ throw this.error('POLICY_UNAVAILABLE');
231
+ }
232
+ const type = Object.values(privacy_request_type_enum_1.DyNTS_PrivacyRequest_Type)
233
+ .find((entry) => entry === context.requestType);
234
+ return schema.parse(value, { requestId: context.requestId, type: type, revision: context.requestRevision });
235
+ }
236
+ open(record) {
237
+ const plaintext = this.settings.cipher.open({ keyId: record.keyId, ciphertext: record.ciphertext }, this.context(record));
238
+ if (typeof plaintext !== 'string' || Buffer.byteLength(plaintext, 'utf8') > 65_536) {
239
+ throw this.error('CIPHERTEXT_INVALID');
240
+ }
241
+ return this.parse(JSON.parse(plaintext), record);
242
+ }
243
+ context(record) {
244
+ return Object.freeze({
245
+ contractVersion: record.contractVersion, inputId: record.inputId, requestId: record.requestId,
246
+ subjectId: record.subjectId, organizationId: record.organizationId, requestType: record.requestType,
247
+ requestRevision: record.requestRevision, policyVersion: record.policyVersion, challengeId: record.challengeId,
248
+ createdAt: record.createdAt, expiresAt: record.expiresAt,
249
+ });
250
+ }
251
+ assertRecord(record, authority, now) {
252
+ if (record?._id !== this.key(authority) || record.requestId !== authority.requestId
253
+ || record.subjectId !== authority.subjectId || record.organizationId !== authority.organizationId
254
+ || record.contractVersion !== 'dynts-privacy-rights-custody/1' || !this.code(record.inputId)
255
+ || !Number.isFinite(Date.parse(record.expiresAt)) || Date.parse(record.expiresAt) <= now.getTime()) {
256
+ throw this.error('INPUT_UNAVAILABLE');
257
+ }
258
+ }
259
+ authority(value) {
260
+ const descriptors = Object.getOwnPropertyDescriptors(value);
261
+ const requestId = descriptors.requestId?.value;
262
+ const subjectId = descriptors.subjectId?.value;
263
+ const organizationId = descriptors.organizationId?.value;
264
+ if (Reflect.ownKeys(value).length !== 3 || !this.code(requestId)
265
+ || !this.code(subjectId) || !this.code(organizationId)) {
266
+ throw this.error('AUTHORITY_INVALID');
267
+ }
268
+ return Object.freeze({ requestId: requestId, subjectId: subjectId, organizationId: organizationId });
269
+ }
270
+ async databaseTime() {
271
+ // hello is not legal inside a transaction. This bounded same-server clock read carries no session or payload.
272
+ const result = await this.settings.connection.db.command({ hello: 1, maxTimeMS: this.settings.maxOperationTimeMs }, { timeoutMS: this.settings.maxOperationTimeMs });
273
+ const now = result.localTime;
274
+ if (!(now instanceof Date) || !Number.isFinite(now.getTime())) {
275
+ throw this.error('CLOCK_UNAVAILABLE');
276
+ }
277
+ return now;
278
+ }
279
+ async execute(session, task) {
280
+ const concern = session?.transaction?.options?.readConcern;
281
+ if (!this.isReady || !session?.inTransaction() || session.transaction.options.writeConcern?.w !== 'majority'
282
+ || (typeof concern === 'string' ? concern : concern?.level) !== 'snapshot') {
283
+ throw this.error('OWNING_TRANSACTION_REQUIRED');
284
+ }
285
+ try {
286
+ // The native driver validates session ownership before dispatch. Empty _id is excluded by our strict schema;
287
+ // this indexed, content-free read verifies the real connection/session pair BEFORE any trusted callback.
288
+ await this.collection().findOne({ _id: '' }, this.options(session));
289
+ return await task();
290
+ }
291
+ catch (error) {
292
+ // Preserve only the driver's retry label, never the message, command or input in its error.
293
+ if (error instanceof mongoose_1.mongo.MongoError && error.hasErrorLabel('TransientTransactionError')) {
294
+ const retryable = new mongoose_1.mongo.MongoError('DyNTS|PRIVACY_RIGHTS_CUSTODY|TRANSACTION_FAILED');
295
+ retryable.addErrorLabel('TransientTransactionError');
296
+ throw retryable;
297
+ }
298
+ if (error instanceof Error && this.ownedErrors.has(error)) {
299
+ throw error;
300
+ }
301
+ throw this.error('INTAKE_OR_EXECUTION_FAILED');
302
+ }
303
+ }
304
+ purpose(type) {
305
+ switch (type) {
306
+ case privacy_request_type_enum_1.DyNTS_PrivacyRequest_Type.rectification: return account_challenge_purpose_type_enum_1.DyNTS_AccountChallengePurpose_Type.privacyRectification;
307
+ case privacy_request_type_enum_1.DyNTS_PrivacyRequest_Type.restriction: return account_challenge_purpose_type_enum_1.DyNTS_AccountChallengePurpose_Type.privacyRestriction;
308
+ case privacy_request_type_enum_1.DyNTS_PrivacyRequest_Type.objection: return account_challenge_purpose_type_enum_1.DyNTS_AccountChallengePurpose_Type.privacyObjection;
309
+ default: throw this.error('REQUEST_TYPE_INVALID');
310
+ }
311
+ }
312
+ receipt(record, created) {
313
+ return Object.freeze({ contractVersion: 'dynts-privacy-rights-receipt/1', inputId: record.inputId,
314
+ requestId: record.requestId, created: created, expiresAt: record.expiresAt });
315
+ }
316
+ key(authority) {
317
+ return (0, node_crypto_1.createHash)('sha256').update(JSON.stringify([
318
+ 'dynts-privacy-rights-custody/1', authority.requestId, authority.subjectId, authority.organizationId,
319
+ ])).digest('hex');
320
+ }
321
+ positive(value, maximum) {
322
+ return Number.isSafeInteger(value) && Number(value) > 0 && Number(value) <= maximum;
323
+ }
324
+ code(value) {
325
+ return typeof value === 'string' && /^[a-zA-Z0-9][a-zA-Z0-9._:-]{0,127}$/u.test(value);
326
+ }
327
+ options(session) {
328
+ return { session: session, maxTimeMS: this.settings.maxOperationTimeMs };
329
+ }
330
+ collection() {
331
+ return this.settings.connection.db.collection('dynts_privacy_rights_inputs');
332
+ }
333
+ error(code) {
334
+ const error = new Error(`DyNTS|PRIVACY_RIGHTS_CUSTODY|${code}`);
335
+ this.ownedErrors.add(error);
336
+ return error;
337
+ }
338
+ validator() {
339
+ const code = { bsonType: 'string', pattern: '^[a-zA-Z0-9][a-zA-Z0-9._:-]{0,127}$' };
340
+ const properties = {
341
+ _id: { bsonType: 'string', pattern: '^[a-f0-9]{64}$' },
342
+ contractVersion: { enum: ['dynts-privacy-rights-custody/1'] },
343
+ inputId: code, requestId: code, subjectId: code, organizationId: code, policyVersion: code, challengeId: code,
344
+ requestType: { enum: ['rectification', 'restriction', 'objection'] },
345
+ requestRevision: { bsonType: ['int', 'long', 'double'], minimum: 0, maximum: Number.MAX_SAFE_INTEGER },
346
+ createdAt: { bsonType: 'string', maxLength: 24 }, expiresAt: { bsonType: 'string', maxLength: 24 },
347
+ credentialHash: { bsonType: 'string', pattern: '^[a-f0-9]{64}$' },
348
+ keyId: code, ciphertext: { bsonType: 'string', minLength: 1, maxLength: 131_072 },
349
+ };
350
+ return { $jsonSchema: { bsonType: 'object', additionalProperties: false,
351
+ required: Object.keys(properties), properties: properties } };
352
+ }
353
+ }
354
+ exports.DyNTS_PrivacyRightsCustody_MongoStore = DyNTS_PrivacyRightsCustody_MongoStore;
355
+ //# sourceMappingURL=privacy-rights-custody.mongo-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-rights-custody.mongo-store.js","sourceRoot":"","sources":["../../../src/_modules/privacy-lifecycle/privacy-rights-custody.mongo-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { DyNTS_PrivacyRightsInputContext_Interface, DyNTS_PrivacyRightsInputPolicy_Interface } from './_models/privacy-rights-input.interface';
2
+ import { DyNTS_PrivacyRightsInput_Type } from './_types/privacy-rights-input.type';
3
+ /**
4
+ * Validates confidential rights input against a trusted, configure-once product schema.
5
+ * Validation is NOT authorization: the caller must consume exact-purpose step-up, derive subject/organization
6
+ * server-side and atomically bind persistence to the same request revision before any execution can occur.
7
+ * No plaintext persistence, hash, logging, authorization grant or field mutation is performed here.
8
+ */
9
+ export declare class DyNTS_PrivacyRightsInput_ControlService {
10
+ private readonly policyVersion;
11
+ private readonly maxInputBytes;
12
+ private readonly maxEntries;
13
+ private readonly fields;
14
+ private readonly purposeCodes;
15
+ /** Captures bounded product schemas so later configuration mutation cannot silently widen acceptance. */
16
+ constructor(policy: DyNTS_PrivacyRightsInputPolicy_Interface);
17
+ /** Returns a detached, deeply frozen envelope, or a content-free rejection without reflecting the input. */
18
+ parse(value: unknown, context: DyNTS_PrivacyRightsInputContext_Interface): DyNTS_PrivacyRightsInput_Type;
19
+ private parseInput;
20
+ private parseReplacements;
21
+ private parsePurposes;
22
+ private entries;
23
+ private exactRecord;
24
+ private safeCode;
25
+ private isScalar;
26
+ private revision;
27
+ private positiveInteger;
28
+ private error;
29
+ }
30
+ //# sourceMappingURL=privacy-rights-input.control-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-rights-input.control-service.d.ts","sourceRoot":"","sources":["../../../src/_modules/privacy-lifecycle/privacy-rights-input.control-service.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,yCAAyC,EACzC,wCAAwC,EAEzC,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF;;;;;GAKG;AACH,qBAAa,uCAAuC;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgE;IACvF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IAEnD,yGAAyG;gBAC7F,MAAM,EAAE,wCAAwC;IA8C5D,4GAA4G;IACrG,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,yCAAyC,GAAG,6BAA6B;IAS/G,OAAO,CAAC,UAAU;IAoDlB,OAAO,CAAC,iBAAiB;IAwCzB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,OAAO;IAyBf,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,KAAK;CASd"}
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_PrivacyRightsInput_ControlService = void 0;
4
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
+ const privacy_request_type_enum_1 = require("./_enums/privacy-request.type-enum");
6
+ const privacy_rights_value_type_enum_1 = require("./_enums/privacy-rights-value.type-enum");
7
+ /**
8
+ * Validates confidential rights input against a trusted, configure-once product schema.
9
+ * Validation is NOT authorization: the caller must consume exact-purpose step-up, derive subject/organization
10
+ * server-side and atomically bind persistence to the same request revision before any execution can occur.
11
+ * No plaintext persistence, hash, logging, authorization grant or field mutation is performed here.
12
+ */
13
+ class DyNTS_PrivacyRightsInput_ControlService {
14
+ policyVersion;
15
+ maxInputBytes;
16
+ maxEntries;
17
+ fields;
18
+ purposeCodes;
19
+ /** Captures bounded product schemas so later configuration mutation cannot silently widen acceptance. */
20
+ constructor(policy) {
21
+ try {
22
+ if (!policy || !this.safeCode(policy.policyVersion)
23
+ || !this.positiveInteger(policy.maxInputBytes, 65_536)
24
+ || !this.positiveInteger(policy.maxEntries, 64)
25
+ || !Array.isArray(policy.fields) || policy.fields.length > 128
26
+ || !Array.isArray(policy.purposeCodes) || policy.purposeCodes.length > 128) {
27
+ throw this.error('SETTINGS_INVALID');
28
+ }
29
+ const fields = new Map();
30
+ const purposes = new Set();
31
+ for (const field of policy.fields) {
32
+ if (!field || !this.safeCode(field.fieldCode) || fields.has(field.fieldCode)
33
+ || !Object.values(privacy_rights_value_type_enum_1.DyNTS_PrivacyRightsValue_Type).includes(field.valueType)
34
+ || typeof field.nullable !== 'boolean' || !this.positiveInteger(field.maxStringBytes, 16_384)
35
+ || typeof field.validate !== 'function') {
36
+ throw this.error('SETTINGS_INVALID');
37
+ }
38
+ fields.set(field.fieldCode, Object.freeze({ ...field }));
39
+ }
40
+ for (const purpose of policy.purposeCodes) {
41
+ if (!this.safeCode(purpose) || purposes.has(purpose)) {
42
+ throw this.error('SETTINGS_INVALID');
43
+ }
44
+ purposes.add(purpose);
45
+ }
46
+ this.policyVersion = policy.policyVersion;
47
+ this.maxInputBytes = policy.maxInputBytes;
48
+ this.maxEntries = policy.maxEntries;
49
+ this.fields = fields;
50
+ this.purposeCodes = purposes;
51
+ }
52
+ catch {
53
+ throw this.error('SETTINGS_INVALID');
54
+ }
55
+ }
56
+ /** Returns a detached, deeply frozen envelope, or a content-free rejection without reflecting the input. */
57
+ parse(value, context) {
58
+ try {
59
+ return this.parseInput(value, context);
60
+ }
61
+ catch {
62
+ // Schema callbacks and malformed objects can throw sensitive values. Never attach their cause or message.
63
+ throw this.error('INPUT_INVALID');
64
+ }
65
+ }
66
+ parseInput(value, context) {
67
+ const isRectification = context?.type === privacy_request_type_enum_1.DyNTS_PrivacyRequest_Type.rectification;
68
+ const payloadKey = isRectification ? 'replacements' : 'purposeCodes';
69
+ if (!context || !this.safeCode(context.requestId) || !this.revision(context.revision)
70
+ || (context.type !== privacy_request_type_enum_1.DyNTS_PrivacyRequest_Type.rectification
71
+ && context.type !== privacy_request_type_enum_1.DyNTS_PrivacyRequest_Type.restriction
72
+ && context.type !== privacy_request_type_enum_1.DyNTS_PrivacyRequest_Type.objection)
73
+ || !this.exactRecord(value, ['contractVersion', 'requestId', 'policyVersion',
74
+ 'expectedRequestRevision', 'type', payloadKey])
75
+ || value.contractVersion !== 'dynts-privacy-rights-input/1'
76
+ || value.requestId !== context.requestId || value.type !== context.type
77
+ || value.policyVersion !== this.policyVersion || !this.revision(value.expectedRequestRevision)
78
+ || value.expectedRequestRevision !== context.revision) {
79
+ throw this.error('INPUT_INVALID');
80
+ }
81
+ const base = {
82
+ contractVersion: 'dynts-privacy-rights-input/1',
83
+ requestId: context.requestId,
84
+ policyVersion: this.policyVersion,
85
+ expectedRequestRevision: context.revision,
86
+ };
87
+ let result;
88
+ if (context.type === privacy_request_type_enum_1.DyNTS_PrivacyRequest_Type.rectification) {
89
+ result = Object.freeze({
90
+ ...base,
91
+ type: context.type,
92
+ replacements: this.parseReplacements(value.replacements),
93
+ });
94
+ }
95
+ else {
96
+ result = Object.freeze({
97
+ ...base,
98
+ type: context.type,
99
+ purposeCodes: this.parsePurposes(value.purposeCodes),
100
+ });
101
+ }
102
+ // Only our reconstructed primitives are serialized: no attacker-controlled toJSON/getters are executed.
103
+ if (Buffer.byteLength(JSON.stringify(result), 'utf8') > this.maxInputBytes) {
104
+ throw this.error('INPUT_INVALID');
105
+ }
106
+ return result;
107
+ }
108
+ parseReplacements(value) {
109
+ const entries = this.entries(value);
110
+ const seen = new Set();
111
+ const replacements = [];
112
+ for (const entry of entries) {
113
+ if (!this.exactRecord(entry, ['fieldCode', 'expectedRevision', 'value'])
114
+ || typeof entry.fieldCode !== 'string' || !this.revision(entry.expectedRevision)
115
+ || seen.has(entry.fieldCode)) {
116
+ throw this.error('INPUT_INVALID');
117
+ }
118
+ const field = this.fields.get(entry.fieldCode);
119
+ const replacement = entry.value;
120
+ if (!this.isScalar(replacement) || !field
121
+ || (replacement === null ? !field.nullable : typeof replacement !== field.valueType)
122
+ || (typeof replacement === 'number' && (!Number.isFinite(replacement) || Object.is(replacement, -0)))
123
+ || (typeof replacement === 'string' && (replacement.includes('\u0000')
124
+ || Buffer.byteLength(replacement, 'utf8') > field.maxStringBytes))) {
125
+ throw this.error('INPUT_INVALID');
126
+ }
127
+ if (field.validate(replacement) !== true) {
128
+ throw this.error('INPUT_INVALID');
129
+ }
130
+ seen.add(entry.fieldCode);
131
+ replacements.push(Object.freeze({
132
+ fieldCode: entry.fieldCode, expectedRevision: entry.expectedRevision, value: replacement,
133
+ }));
134
+ }
135
+ return Object.freeze(replacements);
136
+ }
137
+ parsePurposes(value) {
138
+ const entries = this.entries(value);
139
+ const purposes = new Set();
140
+ for (const entry of entries) {
141
+ if (typeof entry !== 'string' || !this.purposeCodes.has(entry) || purposes.has(entry)) {
142
+ throw this.error('INPUT_INVALID');
143
+ }
144
+ purposes.add(entry);
145
+ }
146
+ return Object.freeze([...purposes]);
147
+ }
148
+ entries(value) {
149
+ if (!Array.isArray(value) || !this.positiveInteger(value.length, this.maxEntries)) {
150
+ throw this.error('INPUT_INVALID');
151
+ }
152
+ // Reject sparse arrays, accessors and hidden/symbol properties before reading any element.
153
+ if (Reflect.ownKeys(value).length !== value.length + 1) {
154
+ throw this.error('INPUT_INVALID');
155
+ }
156
+ const entries = [];
157
+ for (let index = 0; index < value.length; index++) {
158
+ const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
159
+ if (!descriptor || !('value' in descriptor) || !descriptor.enumerable) {
160
+ throw this.error('INPUT_INVALID');
161
+ }
162
+ entries.push(descriptor.value);
163
+ }
164
+ return entries;
165
+ }
166
+ exactRecord(value, keys) {
167
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
168
+ return false;
169
+ }
170
+ const prototype = Object.getPrototypeOf(value);
171
+ const ownKeys = Reflect.ownKeys(value);
172
+ return (prototype === Object.prototype || prototype === null)
173
+ && ownKeys.length === keys.length && ownKeys.every((key) => {
174
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
175
+ return typeof key === 'string' && keys.includes(key)
176
+ && !!descriptor && 'value' in descriptor && descriptor.enumerable === true;
177
+ });
178
+ }
179
+ safeCode(value) {
180
+ return typeof value === 'string' && /^[a-zA-Z0-9][a-zA-Z0-9._:-]{0,127}$/u.test(value);
181
+ }
182
+ isScalar(value) {
183
+ return value === null || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
184
+ }
185
+ revision(value) {
186
+ return Number.isSafeInteger(value) && Number(value) >= 0 && !Object.is(value, -0);
187
+ }
188
+ positiveInteger(value, maximum) {
189
+ return Number.isSafeInteger(value) && Number(value) > 0 && Number(value) <= maximum;
190
+ }
191
+ error(code) {
192
+ return new fsm_dynamo_1.DyFM_Error({
193
+ status: code === 'INPUT_INVALID' ? 400 : 500,
194
+ errorCode: `DYNTS|PRIVACY_RIGHTS_INPUT|${code}`,
195
+ message: 'The privacy rights input or its policy is invalid.',
196
+ userMessage: 'The privacy request input could not be accepted.',
197
+ issuerService: 'DyNTS_PrivacyRightsInput_ControlService',
198
+ });
199
+ }
200
+ }
201
+ exports.DyNTS_PrivacyRightsInput_ControlService = DyNTS_PrivacyRightsInput_ControlService;
202
+ //# sourceMappingURL=privacy-rights-input.control-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-rights-input.control-service.js","sourceRoot":"","sources":["../../../src/_modules/privacy-lifecycle/privacy-rights-input.control-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/nts-dynamo",
3
- "version": "01.15.230",
3
+ "version": "01.15.233",
4
4
  "description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Program Ltd.",
5
5
  "DyBu_settings": {
6
6
  "packageType": "server-package",