@explorins/pers-shared 2.1.122 → 2.1.123

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 (115) hide show
  1. package/dist/cjs/shared-lib/dto/ai/ai-prompt-config.dto.d.ts.map +1 -1
  2. package/dist/cjs/shared-lib/dto/ai/ai-prompt-config.dto.js +22 -2
  3. package/dist/cjs/shared-lib/dto/ai/ai-prompt-config.dto.js.map +1 -1
  4. package/dist/cjs/shared-lib/dto/campaign/campaignClaim.request.dto.d.ts +2 -0
  5. package/dist/cjs/shared-lib/dto/campaign/campaignClaim.request.dto.d.ts.map +1 -1
  6. package/dist/cjs/shared-lib/dto/campaign/campaignClaim.request.dto.js +27 -0
  7. package/dist/cjs/shared-lib/dto/campaign/campaignClaim.request.dto.js.map +1 -1
  8. package/dist/cjs/shared-lib/dto/campaign/trigger-source.dto.d.ts +4 -1
  9. package/dist/cjs/shared-lib/dto/campaign/trigger-source.dto.d.ts.map +1 -1
  10. package/dist/cjs/shared-lib/dto/campaign/trigger-source.dto.js +27 -4
  11. package/dist/cjs/shared-lib/dto/campaign/trigger-source.dto.js.map +1 -1
  12. package/dist/cjs/shared-lib/dto/redemption/redemption.dto.d.ts +2 -0
  13. package/dist/cjs/shared-lib/dto/redemption/redemption.dto.d.ts.map +1 -1
  14. package/dist/cjs/shared-lib/dto/redemption/redemption.dto.js +9 -0
  15. package/dist/cjs/shared-lib/dto/redemption/redemption.dto.js.map +1 -1
  16. package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts +2 -0
  17. package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts.map +1 -1
  18. package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.js +11 -0
  19. package/dist/cjs/shared-lib/dto/redemption/redemptionCreate.request.dto.js.map +1 -1
  20. package/dist/cjs/shared-lib/dto/redemption/redemptionRedeem.request.dto.d.ts +2 -0
  21. package/dist/cjs/shared-lib/dto/redemption/redemptionRedeem.request.dto.d.ts.map +1 -1
  22. package/dist/cjs/shared-lib/dto/redemption/redemptionRedeem.request.dto.js +24 -0
  23. package/dist/cjs/shared-lib/dto/redemption/redemptionRedeem.request.dto.js.map +1 -1
  24. package/dist/cjs/shared-lib/dto/token/token-metadata.dto.d.ts +3 -0
  25. package/dist/cjs/shared-lib/dto/token/token-metadata.dto.d.ts.map +1 -1
  26. package/dist/cjs/shared-lib/dto/token/token-metadata.dto.js +67 -5
  27. package/dist/cjs/shared-lib/dto/token/token-metadata.dto.js.map +1 -1
  28. package/dist/cjs/shared-lib/enum/token-validity-type.enum.d.ts +14 -1
  29. package/dist/cjs/shared-lib/enum/token-validity-type.enum.d.ts.map +1 -1
  30. package/dist/cjs/shared-lib/enum/token-validity-type.enum.js +14 -0
  31. package/dist/cjs/shared-lib/enum/token-validity-type.enum.js.map +1 -1
  32. package/dist/cjs/shared-lib/interfaces/dynamic-context.interface.d.ts +96 -0
  33. package/dist/cjs/shared-lib/interfaces/dynamic-context.interface.d.ts.map +1 -0
  34. package/dist/cjs/shared-lib/interfaces/dynamic-context.interface.js +25 -0
  35. package/dist/cjs/shared-lib/interfaces/dynamic-context.interface.js.map +1 -0
  36. package/dist/cjs/shared-lib/interfaces/index.d.ts +2 -0
  37. package/dist/cjs/shared-lib/interfaces/index.d.ts.map +1 -1
  38. package/dist/cjs/shared-lib/interfaces/index.js +2 -0
  39. package/dist/cjs/shared-lib/interfaces/index.js.map +1 -1
  40. package/dist/cjs/shared-lib/interfaces/token-transaction-input-data.interface.d.ts +13 -0
  41. package/dist/cjs/shared-lib/interfaces/token-transaction-input-data.interface.d.ts.map +1 -1
  42. package/dist/cjs/shared-lib/interfaces/trigger-source-metadata.interface.d.ts +48 -0
  43. package/dist/cjs/shared-lib/interfaces/trigger-source-metadata.interface.d.ts.map +1 -0
  44. package/dist/cjs/shared-lib/interfaces/trigger-source-metadata.interface.js +3 -0
  45. package/dist/cjs/shared-lib/interfaces/trigger-source-metadata.interface.js.map +1 -0
  46. package/dist/cjs/shared-lib/value-objects/token-transaction-entity-reference-input.vo.d.ts +17 -0
  47. package/dist/cjs/shared-lib/value-objects/token-transaction-entity-reference-input.vo.d.ts.map +1 -1
  48. package/dist/cjs/shared-lib/value-objects/token-transaction-entity-reference-input.vo.js +26 -0
  49. package/dist/cjs/shared-lib/value-objects/token-transaction-entity-reference-input.vo.js.map +1 -1
  50. package/dist/cjs/shared-lib/value-objects/token-transaction-input.vo.d.ts +13 -0
  51. package/dist/cjs/shared-lib/value-objects/token-transaction-input.vo.d.ts.map +1 -1
  52. package/dist/cjs/shared-lib/value-objects/token-transaction-input.vo.js +24 -0
  53. package/dist/cjs/shared-lib/value-objects/token-transaction-input.vo.js.map +1 -1
  54. package/dist/cjs/shared-patterns/functions/token-metadata.functions.d.ts +38 -2
  55. package/dist/cjs/shared-patterns/functions/token-metadata.functions.d.ts.map +1 -1
  56. package/dist/cjs/shared-patterns/functions/token-metadata.functions.js +71 -3
  57. package/dist/cjs/shared-patterns/functions/token-metadata.functions.js.map +1 -1
  58. package/dist/esm/shared-lib/dto/ai/ai-prompt-config.dto.d.ts.map +1 -1
  59. package/dist/esm/shared-lib/dto/ai/ai-prompt-config.dto.js +22 -2
  60. package/dist/esm/shared-lib/dto/ai/ai-prompt-config.dto.js.map +1 -1
  61. package/dist/esm/shared-lib/dto/campaign/campaignClaim.request.dto.d.ts +2 -0
  62. package/dist/esm/shared-lib/dto/campaign/campaignClaim.request.dto.d.ts.map +1 -1
  63. package/dist/esm/shared-lib/dto/campaign/campaignClaim.request.dto.js +26 -0
  64. package/dist/esm/shared-lib/dto/campaign/campaignClaim.request.dto.js.map +1 -1
  65. package/dist/esm/shared-lib/dto/campaign/trigger-source.dto.d.ts +4 -1
  66. package/dist/esm/shared-lib/dto/campaign/trigger-source.dto.d.ts.map +1 -1
  67. package/dist/esm/shared-lib/dto/campaign/trigger-source.dto.js +26 -4
  68. package/dist/esm/shared-lib/dto/campaign/trigger-source.dto.js.map +1 -1
  69. package/dist/esm/shared-lib/dto/redemption/redemption.dto.d.ts +2 -0
  70. package/dist/esm/shared-lib/dto/redemption/redemption.dto.d.ts.map +1 -1
  71. package/dist/esm/shared-lib/dto/redemption/redemption.dto.js +8 -0
  72. package/dist/esm/shared-lib/dto/redemption/redemption.dto.js.map +1 -1
  73. package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts +2 -0
  74. package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.d.ts.map +1 -1
  75. package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.js +11 -1
  76. package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.js.map +1 -1
  77. package/dist/esm/shared-lib/dto/redemption/redemptionRedeem.request.dto.d.ts +2 -0
  78. package/dist/esm/shared-lib/dto/redemption/redemptionRedeem.request.dto.d.ts.map +1 -1
  79. package/dist/esm/shared-lib/dto/redemption/redemptionRedeem.request.dto.js +26 -3
  80. package/dist/esm/shared-lib/dto/redemption/redemptionRedeem.request.dto.js.map +1 -1
  81. package/dist/esm/shared-lib/dto/token/token-metadata.dto.d.ts +3 -0
  82. package/dist/esm/shared-lib/dto/token/token-metadata.dto.d.ts.map +1 -1
  83. package/dist/esm/shared-lib/dto/token/token-metadata.dto.js +66 -6
  84. package/dist/esm/shared-lib/dto/token/token-metadata.dto.js.map +1 -1
  85. package/dist/esm/shared-lib/enum/token-validity-type.enum.d.ts +14 -1
  86. package/dist/esm/shared-lib/enum/token-validity-type.enum.d.ts.map +1 -1
  87. package/dist/esm/shared-lib/enum/token-validity-type.enum.js +14 -0
  88. package/dist/esm/shared-lib/enum/token-validity-type.enum.js.map +1 -1
  89. package/dist/esm/shared-lib/interfaces/dynamic-context.interface.d.ts +96 -0
  90. package/dist/esm/shared-lib/interfaces/dynamic-context.interface.d.ts.map +1 -0
  91. package/dist/esm/shared-lib/interfaces/dynamic-context.interface.js +19 -0
  92. package/dist/esm/shared-lib/interfaces/dynamic-context.interface.js.map +1 -0
  93. package/dist/esm/shared-lib/interfaces/index.d.ts +2 -0
  94. package/dist/esm/shared-lib/interfaces/index.d.ts.map +1 -1
  95. package/dist/esm/shared-lib/interfaces/index.js +2 -0
  96. package/dist/esm/shared-lib/interfaces/index.js.map +1 -1
  97. package/dist/esm/shared-lib/interfaces/token-transaction-input-data.interface.d.ts +13 -0
  98. package/dist/esm/shared-lib/interfaces/token-transaction-input-data.interface.d.ts.map +1 -1
  99. package/dist/esm/shared-lib/interfaces/trigger-source-metadata.interface.d.ts +48 -0
  100. package/dist/esm/shared-lib/interfaces/trigger-source-metadata.interface.d.ts.map +1 -0
  101. package/dist/esm/shared-lib/interfaces/trigger-source-metadata.interface.js +2 -0
  102. package/dist/esm/shared-lib/interfaces/trigger-source-metadata.interface.js.map +1 -0
  103. package/dist/esm/shared-lib/value-objects/token-transaction-entity-reference-input.vo.d.ts +17 -0
  104. package/dist/esm/shared-lib/value-objects/token-transaction-entity-reference-input.vo.d.ts.map +1 -1
  105. package/dist/esm/shared-lib/value-objects/token-transaction-entity-reference-input.vo.js +24 -0
  106. package/dist/esm/shared-lib/value-objects/token-transaction-entity-reference-input.vo.js.map +1 -1
  107. package/dist/esm/shared-lib/value-objects/token-transaction-input.vo.d.ts +13 -0
  108. package/dist/esm/shared-lib/value-objects/token-transaction-input.vo.d.ts.map +1 -1
  109. package/dist/esm/shared-lib/value-objects/token-transaction-input.vo.js +22 -0
  110. package/dist/esm/shared-lib/value-objects/token-transaction-input.vo.js.map +1 -1
  111. package/dist/esm/shared-patterns/functions/token-metadata.functions.d.ts +38 -2
  112. package/dist/esm/shared-patterns/functions/token-metadata.functions.d.ts.map +1 -1
  113. package/dist/esm/shared-patterns/functions/token-metadata.functions.js +69 -2
  114. package/dist/esm/shared-patterns/functions/token-metadata.functions.js.map +1 -1
  115. package/package.json +1 -1
@@ -5,12 +5,21 @@ exports.TOKEN_VALIDITY_TYPE_VALUES = exports.TokenValidityTypes = void 0;
5
5
  * Token Validity Type Enum
6
6
  *
7
7
  * Defines how token expiry is calculated:
8
+ *
9
+ * Static types (computed at issuance from template):
8
10
  * - FIXED_DATE: Uses expiryDate directly as absolute expiration
9
11
  * - DAYS_FROM_ISSUANCE: Computes expiry as issuance date + validityDuration days
10
12
  * - HOURS_FROM_ISSUANCE: Computes expiry as issuance date + validityDuration hours
11
13
  * - MONTHS_FROM_ISSUANCE: Computes expiry as issuance date + validityDuration months
12
14
  * - END_OF_MONTH: Token expires at end of the month when issued
13
15
  * - END_OF_YEAR: Token expires at end of the year when issued
16
+ *
17
+ * Trigger-based types (computed from runtime context):
18
+ * - TRIGGER_DATE: Uses date from context.validityDate (e.g., hotel check-out date)
19
+ * - TRIGGER_DATE_RANGE: Uses context.validityEndDate directly (for explicit start/end scenarios)
20
+ * - DAYS_FROM_TRIGGER: Computes expiry as context.validityDate + duration days
21
+ * Duration from context.validityDuration OR template.validityDuration
22
+ * - HOURS_FROM_TRIGGER: Same as above but hours
14
23
  */
15
24
  exports.TokenValidityTypes = {
16
25
  FIXED_DATE: 'fixed_date',
@@ -19,6 +28,11 @@ exports.TokenValidityTypes = {
19
28
  MONTHS_FROM_ISSUANCE: 'months_from_issuance',
20
29
  END_OF_MONTH: 'end_of_month',
21
30
  END_OF_YEAR: 'end_of_year',
31
+ // Trigger-based types - require context at runtime
32
+ TRIGGER_DATE: 'trigger_date',
33
+ TRIGGER_DATE_RANGE: 'trigger_date_range',
34
+ DAYS_FROM_TRIGGER: 'days_from_trigger',
35
+ HOURS_FROM_TRIGGER: 'hours_from_trigger',
22
36
  };
23
37
  exports.TOKEN_VALIDITY_TYPE_VALUES = Object.values(exports.TokenValidityTypes);
24
38
  //# sourceMappingURL=token-validity-type.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-validity-type.enum.js","sourceRoot":"","sources":["../../../../src/shared-lib/enum/token-validity-type.enum.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACU,QAAA,kBAAkB,GAAG;IAC9B,UAAU,EAAE,YAAY;IACxB,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,oBAAoB,EAAE,sBAAsB;IAC5C,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;CACpB,CAAC;AAIE,QAAA,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC,0BAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"token-validity-type.enum.js","sourceRoot":"","sources":["../../../../src/shared-lib/enum/token-validity-type.enum.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACU,QAAA,kBAAkB,GAAG;IAC9B,UAAU,EAAE,YAAY;IACxB,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,oBAAoB,EAAE,sBAAsB;IAC5C,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,mDAAmD;IACnD,YAAY,EAAE,cAAc;IAC5B,kBAAkB,EAAE,oBAAoB;IACxC,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;CAClC,CAAC;AAIE,QAAA,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC,0BAAkB,CAAC,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Dynamic Context Interface
3
+ *
4
+ * Used for runtime context injection in ERC721 token generation.
5
+ * Supports both AI prompt placeholders and trigger-based validity computation.
6
+ *
7
+ * Trust levels and filtering:
8
+ * - Dynamic context (TriggerSource.context): Admin-controlled (QR/NFC) → always trusted
9
+ * - External context (CampaignClaimRequest.context): User API request → only if allowExternalContextOverwrite=true
10
+ *
11
+ * Context merge order (later overrides earlier on conflict):
12
+ * 1. TokenMetadata.defaultPromptContext (admin-defined defaults)
13
+ * 2. Dynamic context (location/trigger-specific, always included)
14
+ * 3. External context (user-provided, only if allowExternalContextOverwrite=true)
15
+ *
16
+ * @example Hotel stay scenario
17
+ * ```typescript
18
+ * const context: DynamicContext = {
19
+ * // Validity - token expires on check-out
20
+ * validityEndDate: '2026-04-20T11:00:00Z',
21
+ *
22
+ * // AI prompt context - available as {{context.xxx}}
23
+ * guestName: 'John Doe',
24
+ * roomNumber: '305',
25
+ * roomType: 'Suite',
26
+ * };
27
+ * ```
28
+ *
29
+ * @example Event ticket scenario
30
+ * ```typescript
31
+ * const context: DynamicContext = {
32
+ * // Validity - token valid until event end + 2 hours
33
+ * validityDate: '2026-06-15T22:00:00Z',
34
+ * validityDuration: 2, // hours (with HOURS_FROM_TRIGGER)
35
+ *
36
+ * // AI prompt context
37
+ * eventName: 'Summer Festival',
38
+ * ticketType: 'VIP',
39
+ * seatNumber: 'A12',
40
+ * };
41
+ * ```
42
+ */
43
+ export interface DynamicContext {
44
+ /**
45
+ * Base date for trigger-based validity types.
46
+ * Used by: TRIGGER_DATE, DAYS_FROM_TRIGGER, HOURS_FROM_TRIGGER
47
+ *
48
+ * @example '2026-04-15T14:00:00Z' (hotel check-in date)
49
+ */
50
+ validityDate?: string | Date;
51
+ /**
52
+ * End date for date range scenarios.
53
+ * Used by: TRIGGER_DATE_RANGE
54
+ * Takes precedence over validityDate for expiry calculation.
55
+ *
56
+ * @example '2026-04-20T11:00:00Z' (hotel check-out date)
57
+ */
58
+ validityEndDate?: string | Date;
59
+ /**
60
+ * Dynamic duration override (days or hours depending on validity type).
61
+ * Used by: DAYS_FROM_TRIGGER, HOURS_FROM_TRIGGER
62
+ * Overrides TokenMetadata.validityDuration when provided.
63
+ *
64
+ * @example 5 (5-night hotel stay, or 5 hours for event)
65
+ */
66
+ validityDuration?: number;
67
+ /**
68
+ * Additional arbitrary keys for AI prompt placeholders.
69
+ * Available in prompts as {{context.keyName}}.
70
+ *
71
+ * Common examples:
72
+ * - guestName, customerName, userName
73
+ * - roomNumber, seatNumber, orderNumber
74
+ * - productCategory, eventType, tierLevel
75
+ */
76
+ [key: string]: string | number | boolean | Date | undefined | null;
77
+ }
78
+ /**
79
+ * Type guard to check if context has validity date
80
+ */
81
+ export declare const hasValidityDate: (context?: DynamicContext) => context is DynamicContext & {
82
+ validityDate: string | Date;
83
+ };
84
+ /**
85
+ * Type guard to check if context has validity end date
86
+ */
87
+ export declare const hasValidityEndDate: (context?: DynamicContext) => context is DynamicContext & {
88
+ validityEndDate: string | Date;
89
+ };
90
+ /**
91
+ * Type guard to check if context has validity duration
92
+ */
93
+ export declare const hasValidityDuration: (context?: DynamicContext) => context is DynamicContext & {
94
+ validityDuration: number;
95
+ };
96
+ //# sourceMappingURL=dynamic-context.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-context.interface.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/dynamic-context.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,WAAW,cAAc;IAK3B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAM1B;;;;;;;;OAQG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;CACtE;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,UAAU,cAAc,KAAG,OAAO,IAAI,cAAc,GAAG;IAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAEnH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,cAAc,KAAG,OAAO,IAAI,cAAc,GAAG;IAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAEzH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,cAAc,KAAG,OAAO,IAAI,cAAc,GAAG;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAEpH,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasValidityDuration = exports.hasValidityEndDate = exports.hasValidityDate = void 0;
4
+ /**
5
+ * Type guard to check if context has validity date
6
+ */
7
+ const hasValidityDate = (context) => {
8
+ return !!context?.validityDate;
9
+ };
10
+ exports.hasValidityDate = hasValidityDate;
11
+ /**
12
+ * Type guard to check if context has validity end date
13
+ */
14
+ const hasValidityEndDate = (context) => {
15
+ return !!context?.validityEndDate;
16
+ };
17
+ exports.hasValidityEndDate = hasValidityEndDate;
18
+ /**
19
+ * Type guard to check if context has validity duration
20
+ */
21
+ const hasValidityDuration = (context) => {
22
+ return typeof context?.validityDuration === 'number' && context.validityDuration > 0;
23
+ };
24
+ exports.hasValidityDuration = hasValidityDuration;
25
+ //# sourceMappingURL=dynamic-context.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-context.interface.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/dynamic-context.interface.ts"],"names":[],"mappings":";;;AAyFA;;GAEG;AACI,MAAM,eAAe,GAAG,CAAC,OAAwB,EAA+D,EAAE;IACrH,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC;AACnC,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEF;;GAEG;AACI,MAAM,kBAAkB,GAAG,CAAC,OAAwB,EAAkE,EAAE;IAC3H,OAAO,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC;AACtC,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEF;;GAEG;AACI,MAAM,mBAAmB,GAAG,CAAC,OAAwB,EAA4D,EAAE;IACtH,OAAO,OAAO,OAAO,EAAE,gBAAgB,KAAK,QAAQ,IAAI,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC;AACzF,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B"}
@@ -19,6 +19,8 @@ export * from './counterfactual-wallet-response.interface';
19
19
  export * from './campaign';
20
20
  export * from './ai-prompt-config.interface';
21
21
  export * from './balance-filter-options.interface';
22
+ export * from './dynamic-context.interface';
23
+ export * from './trigger-source-metadata.interface';
22
24
  export * from './ws-relay.types';
23
25
  export * from './external-token-issuer.interface';
24
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC;AAE3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AAEnD,cAAc,kBAAkB,CAAC;AAEjC,cAAc,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC;AAE3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AAEpD,cAAc,kBAAkB,CAAC;AAEjC,cAAc,mCAAmC,CAAC"}
@@ -36,6 +36,8 @@ __exportStar(require("./counterfactual-wallet-response.interface"), exports);
36
36
  __exportStar(require("./campaign"), exports);
37
37
  __exportStar(require("./ai-prompt-config.interface"), exports);
38
38
  __exportStar(require("./balance-filter-options.interface"), exports);
39
+ __exportStar(require("./dynamic-context.interface"), exports);
40
+ __exportStar(require("./trigger-source-metadata.interface"), exports);
39
41
  __exportStar(require("./ws-relay.types"), exports);
40
42
  __exportStar(require("./external-token-issuer.interface"), exports);
41
43
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAkD;AAClD,mEAAiD;AACjD,uEAAqD;AACrD,iEAA+C;AAC/C,iEAA+C;AAC/C,0DAAwC;AACxC,+DAA6C;AAC7C,2EAAyD;AACzD,iEAA+C;AAC/C,qDAAmC;AACnC,gEAA8C;AAC9C,kEAAgD;AAChD,sEAAoD;AACpD,8DAA4C;AAC5C,kEAAgD;AAChD,4EAA0D;AAC1D,mEAAiD;AAEjD,0DAAwC;AAExC,6EAA2D;AAE3D,6CAA2B;AAE3B,+DAA6C;AAC7C,qEAAmD;AAEnD,mDAAiC;AAEjC,oEAAkD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAkD;AAClD,mEAAiD;AACjD,uEAAqD;AACrD,iEAA+C;AAC/C,iEAA+C;AAC/C,0DAAwC;AACxC,+DAA6C;AAC7C,2EAAyD;AACzD,iEAA+C;AAC/C,qDAAmC;AACnC,gEAA8C;AAC9C,kEAAgD;AAChD,sEAAoD;AACpD,8DAA4C;AAC5C,kEAAgD;AAChD,4EAA0D;AAC1D,mEAAiD;AAEjD,0DAAwC;AAExC,6EAA2D;AAE3D,6CAA2B;AAE3B,+DAA6C;AAC7C,qEAAmD;AACnD,8DAA4C;AAC5C,sEAAoD;AAEpD,mDAAiC;AAEjC,oEAAkD"}
@@ -4,6 +4,7 @@ import { Address } from "../value-objects";
4
4
  import { AccountOwnerType } from "../enum/owner-type.enum";
5
5
  import { NativeTokenType } from "../types";
6
6
  import { TransactionRole } from "../enum/transaction-role.enum";
7
+ import type { DynamicContext } from "./dynamic-context.interface";
7
8
  export interface TxParticipant {
8
9
  /** Account identifier (user ID, business ID, etc.) */
9
10
  accountId?: string | null;
@@ -30,6 +31,18 @@ export interface ITokenTransactionInputData {
30
31
  overrideTokenName?: string;
31
32
  overrideTokenDescription?: string;
32
33
  customAttributes?: Record<string, any>;
34
+ /**
35
+ * **ERC721 only** - Admin-defined dynamic context from trigger source (QR code, NFC tag, etc.).
36
+ * Always applied to AI prompts as {{dynamic.xxx}} - trusted source.
37
+ * Also used for trigger-based validity (validityDate, validityEndDate, validityDuration).
38
+ */
39
+ dynamicContext?: DynamicContext;
40
+ /**
41
+ * **ERC721 only** - User-provided external context from claim request.
42
+ * Only applied if TokenMetadata.allowExternalContextOverwrite is true.
43
+ * Available in AI prompts as {{external.xxx}} when allowed.
44
+ */
45
+ externalContext?: DynamicContext;
33
46
  /** Business commercially involved in this transaction (for stats/reporting) */
34
47
  engagedBusinessId: string | null;
35
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"token-transaction-input-data.interface.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/token-transaction-input-data.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC1B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,sBAAsB;IACtB,WAAW,EAAE,gBAAgB,CAAC;IAE9B,iDAAiD;IACjD,cAAc,EAAE,OAAO,CAAC;IAExB,sCAAsC;IACtC,IAAI,EAAE,eAAe,CAAC;CACzB;AAGD,MAAM,WAAW,0BAA0B;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,EAAE,eAAe,CAAC;IAG3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEvC,+EAA+E;IAC/E,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC"}
1
+ {"version":3,"file":"token-transaction-input-data.interface.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/token-transaction-input-data.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,WAAW,aAAa;IAC1B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,sBAAsB;IACtB,WAAW,EAAE,gBAAgB,CAAC;IAE9B,iDAAiD;IACjD,cAAc,EAAE,OAAO,CAAC;IAExB,sCAAsC;IACtC,IAAI,EAAE,eAAe,CAAC;CACzB;AAGD,MAAM,WAAW,0BAA0B;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,EAAE,eAAe,CAAC;IAG3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEvC;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;;OAIG;IACH,eAAe,CAAC,EAAE,cAAc,CAAC;IAEjC,+EAA+E;IAC/E,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Token configuration override for trigger sources.
3
+ * Allows specific trigger sources (e.g., QR codes) to mint different token variants.
4
+ */
5
+ export interface TriggerSourceTokenConfig {
6
+ /**
7
+ * Override the tokenMetadataIncrementalId for this trigger source.
8
+ * Useful for QR codes that mint specific token variants.
9
+ *
10
+ * @example '2' (mint token metadata ID 2 instead of campaign default)
11
+ */
12
+ tokenId?: string | number;
13
+ }
14
+ /**
15
+ * Trigger Source Metadata Interface
16
+ *
17
+ * Typed metadata structure for trigger sources (QR codes, NFC tags, etc.).
18
+ * Contains ONLY token configuration overrides.
19
+ *
20
+ * NOTE: Dynamic context is now at TriggerSource.context (top-level),
21
+ * consistent with CampaignClaimRequest.context API design.
22
+ *
23
+ * @example QR code with specific token variant
24
+ * ```typescript
25
+ * const metadata: TriggerSourceMetadata = {
26
+ * tokenConfig: { tokenId: '2' }, // This QR mints token variant 2
27
+ * };
28
+ *
29
+ * // Context is now top-level:
30
+ * const triggerSource = {
31
+ * metadata: { tokenConfig: { tokenId: '2' } },
32
+ * context: { location: 'Main Lobby', deviceId: 'kiosk-001' }
33
+ * };
34
+ * ```
35
+ */
36
+ export interface TriggerSourceMetadata {
37
+ /**
38
+ * Token configuration override.
39
+ * Allows this trigger source to mint a different token variant than campaign default.
40
+ */
41
+ tokenConfig?: TriggerSourceTokenConfig;
42
+ /**
43
+ * Additional arbitrary metadata for custom use cases.
44
+ * Not processed by the system - available for integrations.
45
+ */
46
+ [key: string]: any;
47
+ }
48
+ //# sourceMappingURL=trigger-source-metadata.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger-source-metadata.interface.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/trigger-source-metadata.interface.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACrC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,qBAAqB;IAClC;;;OAGG;IACH,WAAW,CAAC,EAAE,wBAAwB,CAAC;IAEvC;;;OAGG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=trigger-source-metadata.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger-source-metadata.interface.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/trigger-source-metadata.interface.ts"],"names":[],"mappings":""}
@@ -2,6 +2,7 @@ import { Web3TransactionType } from '../enum/transaction-type.enum';
2
2
  import { AccountSelector } from '../../shared-lib/types/account-selector.type';
3
3
  import { AccountSelectorVo } from './account-selector.vo';
4
4
  import { AccountOwnerType } from '../enum';
5
+ import type { DynamicContext } from '../interfaces/dynamic-context.interface';
5
6
  /**
6
7
  * Token Transaction Entity Reference Input VO
7
8
  *
@@ -29,6 +30,18 @@ export declare class TokenTransactionEntityReferenceInputVo {
29
30
  readonly overrideTokenName?: string;
30
31
  readonly overrideTokenDescription?: string;
31
32
  readonly customAttributes?: Record<string, any>;
33
+ /**
34
+ * **ERC721 only** - Admin-defined dynamic context from trigger source (QR code, NFC tag, etc.).
35
+ * Always applied to AI prompts as {{dynamic.xxx}} - trusted source.
36
+ * Also used for trigger-based validity (validityDate, validityEndDate, validityDuration).
37
+ */
38
+ readonly dynamicContext?: DynamicContext;
39
+ /**
40
+ * **ERC721 only** - User-provided external context from claim request.
41
+ * Only applied if TokenMetadata.allowExternalContextOverwrite is true.
42
+ * Available in AI prompts as {{external.xxx}} when allowed.
43
+ */
44
+ readonly externalContext?: DynamicContext;
32
45
  /** Business commercially involved in this transaction (for stats/reporting) */
33
46
  readonly engagedBusinessId: string | null;
34
47
  /** Entity authorized to submit this transaction (defaults to sender if not specified) */
@@ -48,6 +61,8 @@ export declare class TokenTransactionEntityReferenceInputVo {
48
61
  overrideTokenName?: string;
49
62
  overrideTokenDescription?: string;
50
63
  customAttributes?: Record<string, any>;
64
+ dynamicContext?: DynamicContext;
65
+ externalContext?: DynamicContext;
51
66
  engagedBusinessId: string | null;
52
67
  authorizedSubmitterId?: string | null;
53
68
  authorizedSubmitterType?: AccountOwnerType | null;
@@ -69,6 +84,8 @@ export declare class TokenTransactionEntityReferenceInputVo {
69
84
  overrideTokenName?: string;
70
85
  overrideTokenDescription?: string;
71
86
  customAttributes?: Record<string, any>;
87
+ dynamicContext?: DynamicContext;
88
+ externalContext?: DynamicContext;
72
89
  engagedBusinessId: string | null;
73
90
  authorizedSubmitterId: string | null;
74
91
  authorizedSubmitterType: AccountOwnerType | null;
@@ -1 +1 @@
1
- {"version":3,"file":"token-transaction-entity-reference-input.vo.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/value-objects/token-transaction-entity-reference-input.vo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-transaction-entity-reference-input.vo.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/value-objects/token-transaction-entity-reference-input.vo.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,18 @@ class TokenTransactionEntityReferenceInputVo {
43
43
  overrideTokenName;
44
44
  overrideTokenDescription;
45
45
  customAttributes;
46
+ /**
47
+ * **ERC721 only** - Admin-defined dynamic context from trigger source (QR code, NFC tag, etc.).
48
+ * Always applied to AI prompts as {{dynamic.xxx}} - trusted source.
49
+ * Also used for trigger-based validity (validityDate, validityEndDate, validityDuration).
50
+ */
51
+ dynamicContext;
52
+ /**
53
+ * **ERC721 only** - User-provided external context from claim request.
54
+ * Only applied if TokenMetadata.allowExternalContextOverwrite is true.
55
+ * Available in AI prompts as {{external.xxx}} when allowed.
56
+ */
57
+ externalContext;
46
58
  /** Business commercially involved in this transaction (for stats/reporting) */
47
59
  engagedBusinessId;
48
60
  /** Entity authorized to submit this transaction (defaults to sender if not specified) */
@@ -63,6 +75,8 @@ class TokenTransactionEntityReferenceInputVo {
63
75
  this.overrideTokenName = data.overrideTokenName;
64
76
  this.overrideTokenDescription = data.overrideTokenDescription;
65
77
  this.customAttributes = data.customAttributes;
78
+ this.dynamicContext = data.dynamicContext;
79
+ this.externalContext = data.externalContext;
66
80
  this.engagedBusinessId = data.engagedBusinessId ?? null;
67
81
  this.authorizedSubmitterId = data.authorizedSubmitterId ?? null;
68
82
  this.authorizedSubmitterType = data.authorizedSubmitterType ?? null;
@@ -88,6 +102,8 @@ class TokenTransactionEntityReferenceInputVo {
88
102
  overrideTokenName: this.overrideTokenName,
89
103
  overrideTokenDescription: this.overrideTokenDescription,
90
104
  customAttributes: this.customAttributes,
105
+ dynamicContext: this.dynamicContext,
106
+ externalContext: this.externalContext,
91
107
  engagedBusinessId: this.engagedBusinessId,
92
108
  authorizedSubmitterId: this.authorizedSubmitterId,
93
109
  authorizedSubmitterType: this.authorizedSubmitterType
@@ -159,6 +175,16 @@ __decorate([
159
175
  (0, class_validator_1.IsOptional)(),
160
176
  __metadata("design:type", Object)
161
177
  ], TokenTransactionEntityReferenceInputVo.prototype, "customAttributes", void 0);
178
+ __decorate([
179
+ (0, class_validator_1.IsObject)(),
180
+ (0, class_validator_1.IsOptional)(),
181
+ __metadata("design:type", Object)
182
+ ], TokenTransactionEntityReferenceInputVo.prototype, "dynamicContext", void 0);
183
+ __decorate([
184
+ (0, class_validator_1.IsObject)(),
185
+ (0, class_validator_1.IsOptional)(),
186
+ __metadata("design:type", Object)
187
+ ], TokenTransactionEntityReferenceInputVo.prototype, "externalContext", void 0);
162
188
  __decorate([
163
189
  (0, class_validator_1.IsString)(),
164
190
  (0, class_validator_1.IsOptional)(),
@@ -1 +1 @@
1
- {"version":3,"file":"token-transaction-entity-reference-input.vo.js","sourceRoot":"","sources":["../../../../src/shared-lib/value-objects/token-transaction-entity-reference-input.vo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-transaction-entity-reference-input.vo.js","sourceRoot":"","sources":["../../../../src/shared-lib/value-objects/token-transaction-entity-reference-input.vo.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA+G;AAC/G,yDAAyC;AAEzC,yEAAoE;AAEpE,+DAA0D;AAC1D,kCAA2C;AAE3C;;;;;;;;;GASG;AACH,MAAa,sCAAsC;IAGjD,aAAa,CAAgB;IAIb,aAAa,CAAS,CAAC,qEAAqE;IAE5G;;;OAGG;IAGI,eAAe,CAAgB;IAKtB,MAAM,CAAoB;IAK1B,SAAS,CAA4B,CAAC,oCAAoC;IAI1E,MAAM,CAAS;IAIf,IAAI,CAAsB;IAE1C,2DAA2D;IAG3C,QAAQ,CAAU;IAIlB,gBAAgB,CAAU;IAI1B,iBAAiB,CAAU;IAI3B,wBAAwB,CAAU;IAIlC,gBAAgB,CAAuB;IAEvD;;;;OAIG;IAGa,cAAc,CAAkB;IAEhD;;;;OAIG;IAGa,eAAe,CAAkB;IAEjD,+EAA+E;IAG/D,iBAAiB,CAAgB;IAEjD,yFAAyF;IAGzE,qBAAqB,CAAgB;IAErD,2DAA2D;IAG3C,uBAAuB,CAA0B;IAEjE,YAAY,IAkBX;QACC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,uCAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,uCAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAElB,yBAAyB;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC;QAC9D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC;QACxD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC;QAChE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC;QAEpE,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,qBAAqB;QAC3B,qCAAqC;IACvC,CAAC;IAED;;OAEG;IACH,iBAAiB;QAmBf,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;YACvC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI;YACrE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;YACvD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;SACtD,CAAC;IACJ,CAAC;CACF;AAjLD,wFAiLC;AA9KC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;6EACgB;AAIb;IAFf,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;6EACyB;AAQ/B;IAFN,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;+EACyB;AAKtB;IAHf,IAAA,4BAAU,GAAE;IACZ,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,uCAAiB,CAAC,CAAC,qCAAqC;;8BAC5C,uCAAiB;sEAAC;AAK1B;IAHf,IAAA,4BAAU,GAAE;IACZ,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,uCAAiB,CAAC,CAAC,qCAAqC;;;yEACf;AAIrC;IAFf,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;sEACkB;AAIf;IAFf,IAAA,wBAAM,EAAC,2CAAmB,CAAC;IAC3B,IAAA,4BAAU,GAAE;;oEAC6B;AAK1B;IAFf,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wEACqB;AAIlB;IAFf,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;gFAC6B;AAI1B;IAFf,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;iFAC8B;AAI3B;IAFf,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wFACqC;AAIlC;IAFf,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;gFAC0C;AASvC;IAFf,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8EACmC;AAShC;IAFf,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;+EACoC;AAKjC;IAFf,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;iFACoC;AAKjC;IAFf,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qFACwC;AAKrC;IAFf,IAAA,wBAAM,EAAC,uBAAgB,CAAC;IACxB,IAAA,4BAAU,GAAE;;uFACoD"}
@@ -3,6 +3,7 @@ import { Web3TransactionType } from '../enum/transaction-type.enum';
3
3
  import { Address } from './address.value-object';
4
4
  import { type ITokenTransactionInputData, type TxParticipant } from '../interfaces/token-transaction-input-data.interface';
5
5
  import { type NativeTokenType } from '../types/native-token.type';
6
+ import type { DynamicContext } from '../interfaces/dynamic-context.interface';
6
7
  export declare class TokenTransactionInputDataVo implements ITokenTransactionInputData {
7
8
  transactionId: string | null;
8
9
  readonly chainId: number;
@@ -23,6 +24,18 @@ export declare class TokenTransactionInputDataVo implements ITokenTransactionInp
23
24
  readonly overrideTokenName?: string;
24
25
  readonly overrideTokenDescription?: string;
25
26
  readonly customAttributes?: Record<string, any>;
27
+ /**
28
+ * **ERC721 only** - Admin-defined dynamic context from trigger source (QR code, NFC tag, etc.).
29
+ * Always applied to AI prompts as {{dynamic.xxx}} - trusted source.
30
+ * Also used for trigger-based validity (validityDate, validityEndDate, validityDuration).
31
+ */
32
+ readonly dynamicContext?: DynamicContext;
33
+ /**
34
+ * **ERC721 only** - User-provided external context from claim request.
35
+ * Only applied if TokenMetadata.allowExternalContextOverwrite is true.
36
+ * Available in AI prompts as {{external.xxx}} when allowed.
37
+ */
38
+ readonly externalContext?: DynamicContext;
26
39
  /** Business commercially involved in this transaction (for stats/reporting) */
27
40
  readonly engagedBusinessId: string | null;
28
41
  constructor(data: ITokenTransactionInputData);
@@ -1 +1 @@
1
- {"version":3,"file":"token-transaction-input.vo.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/value-objects/token-transaction-input.vo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,KAAK,0BAA0B,EAAE,KAAK,aAAa,EAAE,MAAM,sDAAsD,CAAC;AAC3H,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,qBAAa,2BAA4B,YAAW,0BAA0B;IAG5E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,SAEgB,OAAO,EAAE,MAAM,CAAC;IAEhC,SAIgB,oBAAoB,EAAE,OAAO,CAAC;IAE9C,SACgB,WAAW,EAAE,WAAW,CAAC;IAGzC,SAGgB,MAAM,EAAE,aAAa,CAAC;IAEtC,SAIgB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5C;;;OAGG;IAGI,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC,SAEgB,MAAM,EAAE,MAAM,CAAC;IAE/B,SAEgB,IAAI,EAAE,mBAAmB,CAAC;IAC1C,SACgB,SAAS,EAAE,eAAe,CAAC;IAI3C,SAEgB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElC,SAEgB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1C,SAEgB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3C,SAEgB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElD,SAEgB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEvD,+EAA+E;IAC/E,SAAgB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;gBAErC,IAAI,EAAE,0BAA0B;CAgC7C"}
1
+ {"version":3,"file":"token-transaction-input.vo.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/value-objects/token-transaction-input.vo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,KAAK,0BAA0B,EAAE,KAAK,aAAa,EAAE,MAAM,sDAAsD,CAAC;AAC3H,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAE9E,qBAAa,2BAA4B,YAAW,0BAA0B;IAG5E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,SAEgB,OAAO,EAAE,MAAM,CAAC;IAEhC,SAIgB,oBAAoB,EAAE,OAAO,CAAC;IAE9C,SACgB,WAAW,EAAE,WAAW,CAAC;IAGzC,SAGgB,MAAM,EAAE,aAAa,CAAC;IAEtC,SAIgB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5C;;;OAGG;IAGI,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC,SAEgB,MAAM,EAAE,MAAM,CAAC;IAE/B,SAEgB,IAAI,EAAE,mBAAmB,CAAC;IAC1C,SACgB,SAAS,EAAE,eAAe,CAAC;IAI3C,SAEgB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElC,SAEgB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1C,SAEgB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3C,SAEgB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElD,SAEgB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEvD;;;;OAIG;IACH,SAEgB,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhD;;;;OAIG;IACH,SAEgB,eAAe,CAAC,EAAE,cAAc,CAAC;IAEjD,+EAA+E;IAC/E,SAAgB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;gBAErC,IAAI,EAAE,0BAA0B;CAkC7C"}
@@ -37,6 +37,18 @@ class TokenTransactionInputDataVo {
37
37
  overrideTokenName;
38
38
  overrideTokenDescription;
39
39
  customAttributes;
40
+ /**
41
+ * **ERC721 only** - Admin-defined dynamic context from trigger source (QR code, NFC tag, etc.).
42
+ * Always applied to AI prompts as {{dynamic.xxx}} - trusted source.
43
+ * Also used for trigger-based validity (validityDate, validityEndDate, validityDuration).
44
+ */
45
+ dynamicContext;
46
+ /**
47
+ * **ERC721 only** - User-provided external context from claim request.
48
+ * Only applied if TokenMetadata.allowExternalContextOverwrite is true.
49
+ * Available in AI prompts as {{external.xxx}} when allowed.
50
+ */
51
+ externalContext;
40
52
  /** Business commercially involved in this transaction (for stats/reporting) */
41
53
  engagedBusinessId;
42
54
  constructor(data) {
@@ -56,6 +68,8 @@ class TokenTransactionInputDataVo {
56
68
  this.overrideTokenName = data.overrideTokenName;
57
69
  this.overrideTokenDescription = data.overrideTokenDescription;
58
70
  this.customAttributes = data.customAttributes;
71
+ this.dynamicContext = data.dynamicContext;
72
+ this.externalContext = data.externalContext;
59
73
  this.engagedBusinessId = data.engagedBusinessId;
60
74
  // Basic validation (can be enhanced with class-validator if this VO is used in DTOs that are validated)
61
75
  if (this.amount <= 0 && this.type) {
@@ -152,4 +166,14 @@ __decorate([
152
166
  (0, class_validator_1.IsOptional)(),
153
167
  __metadata("design:type", Object)
154
168
  ], TokenTransactionInputDataVo.prototype, "customAttributes", void 0);
169
+ __decorate([
170
+ (0, class_validator_1.IsObject)(),
171
+ (0, class_validator_1.IsOptional)(),
172
+ __metadata("design:type", Object)
173
+ ], TokenTransactionInputDataVo.prototype, "dynamicContext", void 0);
174
+ __decorate([
175
+ (0, class_validator_1.IsObject)(),
176
+ (0, class_validator_1.IsOptional)(),
177
+ __metadata("design:type", Object)
178
+ ], TokenTransactionInputDataVo.prototype, "externalContext", void 0);
155
179
  //# sourceMappingURL=token-transaction-input.vo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-transaction-input.vo.js","sourceRoot":"","sources":["../../../../src/shared-lib/value-objects/token-transaction-input.vo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-transaction-input.vo.js","sourceRoot":"","sources":["../../../../src/shared-lib/value-objects/token-transaction-input.vo.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import { type TokenValidityType } from '../../shared-lib/enum/token-validity-type.enum';
8
8
  import { TokenStorageData } from '../../shared-lib/interfaces/token-storage-data.interface';
9
+ import type { DynamicContext } from '../../shared-lib/interfaces/dynamic-context.interface';
9
10
  /**
10
11
  * Checks if a token ID is a URI (IPFS or HTTP).
11
12
  * Used for determining how to resolve token metadata.
@@ -18,12 +19,20 @@ export declare const checkIfTokenIdIsUri: (tokenId: string | null) => boolean;
18
19
  * Computes the expiry date based on validity configuration.
19
20
  *
20
21
  * @param validityType - The type of validity calculation
21
- * @param validityDuration - Duration in days or hours (for relative types)
22
+ * @param validityDuration - Duration in days or hours (for relative types) - can be overridden by triggerDuration
22
23
  * @param fixedExpiryDate - Fixed expiry date (for fixed_date type)
23
24
  * @param issuanceDate - The date of issuance (defaults to now)
25
+ * @param triggerContext - Runtime context for trigger-based types:
26
+ * - triggerDate: Base date (e.g., check-in date) for TRIGGER_DATE, DAYS_FROM_TRIGGER
27
+ * - triggerEndDate: End date (e.g., check-out date) for TRIGGER_DATE_RANGE
28
+ * - triggerDuration: Dynamic duration override for DAYS_FROM_TRIGGER, HOURS_FROM_TRIGGER
24
29
  * @returns The computed expiry date, or undefined if no validity is configured
25
30
  */
26
- export declare const computeExpiryDate: (validityType?: TokenValidityType, validityDuration?: number, fixedExpiryDate?: Date, issuanceDate?: Date) => Date | undefined;
31
+ export declare const computeExpiryDate: (validityType?: TokenValidityType, validityDuration?: number, fixedExpiryDate?: Date, issuanceDate?: Date, triggerContext?: {
32
+ triggerDate?: Date;
33
+ triggerEndDate?: Date;
34
+ triggerDuration?: number;
35
+ }) => Date | undefined;
27
36
  /**
28
37
  * Checks if a token has expired based on its expiry date.
29
38
  *
@@ -69,4 +78,31 @@ export declare const extractTagsFromMetadata: (metadata: TokenStorageData | null
69
78
  * extractBusinessIdsFromMetadata(metadata); // Returns ['uuid-1', 'uuid-2']
70
79
  */
71
80
  export declare const extractBusinessIdsFromMetadata: (metadata: TokenStorageData | null) => string[];
81
+ /**
82
+ * Merges dynamic and external contexts with security enforcement.
83
+ * This is a DOMAIN RULE - enforces trust levels for context injection.
84
+ *
85
+ * Trust levels:
86
+ * - dynamicContext: Admin-controlled (QR/NFC) → ALWAYS applied
87
+ * - externalContext: User request → ONLY if allowExternalContextOverwrite=true
88
+ *
89
+ * This function should be used by any code that needs to merge contexts
90
+ * for ERC721 token generation, ensuring consistent security enforcement.
91
+ *
92
+ * @param allowExternalContextOverwrite - Whether user-provided external context is allowed (from TokenMetadata)
93
+ * @param dynamicContext - Admin-controlled context (always trusted)
94
+ * @param externalContext - User-provided context (requires explicit opt-in)
95
+ * @returns Merged context or undefined if empty
96
+ *
97
+ * @example
98
+ * // Admin context only (user context not allowed)
99
+ * mergeContexts(false, { location: 'Lobby' }, { hack: 'attempt' })
100
+ * // Returns: { location: 'Lobby' }
101
+ *
102
+ * @example
103
+ * // Both contexts merged (user context allowed)
104
+ * mergeContexts(true, { location: 'Lobby' }, { guestName: 'John' })
105
+ * // Returns: { location: 'Lobby', guestName: 'John' }
106
+ */
107
+ export declare const mergeContexts: (allowExternalContextOverwrite: boolean, dynamicContext?: DynamicContext, externalContext?: DynamicContext) => DynamicContext | undefined;
72
108
  //# sourceMappingURL=token-metadata.functions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-metadata.functions.d.ts","sourceRoot":"","sources":["../../../../src/shared-patterns/functions/token-metadata.functions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAC5G,OAAO,EAAE,gBAAgB,EAAkC,MAAM,0DAA0D,CAAC;AAE5H;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,OAM5D,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC5B,eAAe,iBAAiB,EAChC,mBAAmB,MAAM,EACzB,kBAAkB,IAAI,EACtB,eAAc,IAAiB,KAC9B,IAAI,GAAG,SA6CT,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,aAAa,IAAI,GAAG,IAAI,EACxB,gBAAe,IAAiB,KAC/B,OAAO,GAAG,SAGZ,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,GAAI,UAAU,gBAAgB,GAAG,IAAI,KAAG,IAAI,GAAG,IAaxF,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,gBAAgB,GAAG,IAAI,KAAG,MAAM,EAiBjF,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,8BAA8B,GAAI,UAAU,gBAAgB,GAAG,IAAI,KAAG,MAAM,EAmBxF,CAAA"}
1
+ {"version":3,"file":"token-metadata.functions.d.ts","sourceRoot":"","sources":["../../../../src/shared-patterns/functions/token-metadata.functions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAC5G,OAAO,EAAE,gBAAgB,EAAkC,MAAM,0DAA0D,CAAC;AAC5H,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AAE5F;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,OAM5D,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,GAC5B,eAAe,iBAAiB,EAChC,mBAAmB,MAAM,EACzB,kBAAkB,IAAI,EACtB,eAAc,IAAiB,EAC/B,iBAAiB;IACf,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,KACA,IAAI,GAAG,SAuET,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,aAAa,IAAI,GAAG,IAAI,EACxB,gBAAe,IAAiB,KAC/B,OAAO,GAAG,SAGZ,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,GAAI,UAAU,gBAAgB,GAAG,IAAI,KAAG,IAAI,GAAG,IAaxF,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,gBAAgB,GAAG,IAAI,KAAG,MAAM,EAiBjF,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,8BAA8B,GAAI,UAAU,gBAAgB,GAAG,IAAI,KAAG,MAAM,EAmBxF,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,aAAa,GACxB,+BAA+B,OAAO,EACtC,iBAAiB,cAAc,EAC/B,kBAAkB,cAAc,KAC/B,cAAc,GAAG,SAanB,CAAA"}