@kya-os/consent 0.1.0

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 (161) hide show
  1. package/dist/constants/auth-modes.d.ts +54 -0
  2. package/dist/constants/auth-modes.d.ts.map +1 -0
  3. package/dist/constants/auth-modes.js +128 -0
  4. package/dist/constants/auth-modes.js.map +1 -0
  5. package/dist/constants/colors.d.ts +38 -0
  6. package/dist/constants/colors.d.ts.map +1 -0
  7. package/dist/constants/colors.js +40 -0
  8. package/dist/constants/colors.js.map +1 -0
  9. package/dist/constants/defaults.d.ts +112 -0
  10. package/dist/constants/defaults.d.ts.map +1 -0
  11. package/dist/constants/defaults.js +146 -0
  12. package/dist/constants/defaults.js.map +1 -0
  13. package/dist/constants/index.d.ts +11 -0
  14. package/dist/constants/index.d.ts.map +1 -0
  15. package/dist/constants/index.js +37 -0
  16. package/dist/constants/index.js.map +1 -0
  17. package/dist/index.d.ts +16 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +39 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/resolution/index.d.ts +12 -0
  22. package/dist/resolution/index.d.ts.map +1 -0
  23. package/dist/resolution/index.js +28 -0
  24. package/dist/resolution/index.js.map +1 -0
  25. package/dist/resolution/resolve-branding.d.ts +70 -0
  26. package/dist/resolution/resolve-branding.d.ts.map +1 -0
  27. package/dist/resolution/resolve-branding.js +159 -0
  28. package/dist/resolution/resolve-branding.js.map +1 -0
  29. package/dist/resolution/resolve-config.d.ts +81 -0
  30. package/dist/resolution/resolve-config.d.ts.map +1 -0
  31. package/dist/resolution/resolve-config.js +254 -0
  32. package/dist/resolution/resolve-config.js.map +1 -0
  33. package/dist/resolution/resolve-copy.d.ts +53 -0
  34. package/dist/resolution/resolve-copy.d.ts.map +1 -0
  35. package/dist/resolution/resolve-copy.js +136 -0
  36. package/dist/resolution/resolve-copy.js.map +1 -0
  37. package/dist/schemas/api.schemas.d.ts +984 -0
  38. package/dist/schemas/api.schemas.d.ts.map +1 -0
  39. package/dist/schemas/api.schemas.js +153 -0
  40. package/dist/schemas/api.schemas.js.map +1 -0
  41. package/dist/schemas/branding.schemas.d.ts +100 -0
  42. package/dist/schemas/branding.schemas.d.ts.map +1 -0
  43. package/dist/schemas/branding.schemas.js +57 -0
  44. package/dist/schemas/branding.schemas.js.map +1 -0
  45. package/dist/schemas/config.schemas.d.ts +1182 -0
  46. package/dist/schemas/config.schemas.d.ts.map +1 -0
  47. package/dist/schemas/config.schemas.js +147 -0
  48. package/dist/schemas/config.schemas.js.map +1 -0
  49. package/dist/schemas/index.d.ts +13 -0
  50. package/dist/schemas/index.d.ts.map +1 -0
  51. package/dist/schemas/index.js +29 -0
  52. package/dist/schemas/index.js.map +1 -0
  53. package/dist/schemas/modes.schemas.d.ts +406 -0
  54. package/dist/schemas/modes.schemas.d.ts.map +1 -0
  55. package/dist/schemas/modes.schemas.js +107 -0
  56. package/dist/schemas/modes.schemas.js.map +1 -0
  57. package/dist/security/escape.d.ts +114 -0
  58. package/dist/security/escape.d.ts.map +1 -0
  59. package/dist/security/escape.js +202 -0
  60. package/dist/security/escape.js.map +1 -0
  61. package/dist/security/index.d.ts +10 -0
  62. package/dist/security/index.d.ts.map +1 -0
  63. package/dist/security/index.js +26 -0
  64. package/dist/security/index.js.map +1 -0
  65. package/dist/security/validators.d.ts +98 -0
  66. package/dist/security/validators.d.ts.map +1 -0
  67. package/dist/security/validators.js +210 -0
  68. package/dist/security/validators.js.map +1 -0
  69. package/dist/styles/css-variables.d.ts +78 -0
  70. package/dist/styles/css-variables.d.ts.map +1 -0
  71. package/dist/styles/css-variables.js +129 -0
  72. package/dist/styles/css-variables.js.map +1 -0
  73. package/dist/styles/index.d.ts +12 -0
  74. package/dist/styles/index.d.ts.map +1 -0
  75. package/dist/styles/index.js +28 -0
  76. package/dist/styles/index.js.map +1 -0
  77. package/dist/styles/stylesheet.d.ts +57 -0
  78. package/dist/styles/stylesheet.d.ts.map +1 -0
  79. package/dist/styles/stylesheet.js +204 -0
  80. package/dist/styles/stylesheet.js.map +1 -0
  81. package/dist/styles/tokens.d.ts +141 -0
  82. package/dist/styles/tokens.d.ts.map +1 -0
  83. package/dist/styles/tokens.js +183 -0
  84. package/dist/styles/tokens.js.map +1 -0
  85. package/dist/templates/base/base-template.d.ts +81 -0
  86. package/dist/templates/base/base-template.d.ts.map +1 -0
  87. package/dist/templates/base/base-template.js +282 -0
  88. package/dist/templates/base/base-template.js.map +1 -0
  89. package/dist/templates/base/components.d.ts +120 -0
  90. package/dist/templates/base/components.d.ts.map +1 -0
  91. package/dist/templates/base/components.js +295 -0
  92. package/dist/templates/base/components.js.map +1 -0
  93. package/dist/templates/base/index.d.ts +8 -0
  94. package/dist/templates/base/index.d.ts.map +1 -0
  95. package/dist/templates/base/index.js +26 -0
  96. package/dist/templates/base/index.js.map +1 -0
  97. package/dist/templates/index.d.ts +18 -0
  98. package/dist/templates/index.d.ts.map +1 -0
  99. package/dist/templates/index.js +34 -0
  100. package/dist/templates/index.js.map +1 -0
  101. package/dist/templates/modes/consent-only.template.d.ts +36 -0
  102. package/dist/templates/modes/consent-only.template.d.ts.map +1 -0
  103. package/dist/templates/modes/consent-only.template.js +74 -0
  104. package/dist/templates/modes/consent-only.template.js.map +1 -0
  105. package/dist/templates/modes/credentials.template.d.ts +65 -0
  106. package/dist/templates/modes/credentials.template.d.ts.map +1 -0
  107. package/dist/templates/modes/credentials.template.js +414 -0
  108. package/dist/templates/modes/credentials.template.js.map +1 -0
  109. package/dist/templates/modes/index.d.ts +14 -0
  110. package/dist/templates/modes/index.d.ts.map +1 -0
  111. package/dist/templates/modes/index.js +24 -0
  112. package/dist/templates/modes/index.js.map +1 -0
  113. package/dist/templates/modes/magic-link.template.d.ts +33 -0
  114. package/dist/templates/modes/magic-link.template.d.ts.map +1 -0
  115. package/dist/templates/modes/magic-link.template.js +196 -0
  116. package/dist/templates/modes/magic-link.template.js.map +1 -0
  117. package/dist/templates/modes/oauth.template.d.ts +40 -0
  118. package/dist/templates/modes/oauth.template.d.ts.map +1 -0
  119. package/dist/templates/modes/oauth.template.js +153 -0
  120. package/dist/templates/modes/oauth.template.js.map +1 -0
  121. package/dist/templates/modes/otp.template.d.ts +35 -0
  122. package/dist/templates/modes/otp.template.d.ts.map +1 -0
  123. package/dist/templates/modes/otp.template.js +316 -0
  124. package/dist/templates/modes/otp.template.js.map +1 -0
  125. package/dist/templates/modes/success.template.d.ts +41 -0
  126. package/dist/templates/modes/success.template.d.ts.map +1 -0
  127. package/dist/templates/modes/success.template.js +140 -0
  128. package/dist/templates/modes/success.template.js.map +1 -0
  129. package/dist/templates/registry.d.ts +62 -0
  130. package/dist/templates/registry.d.ts.map +1 -0
  131. package/dist/templates/registry.js +135 -0
  132. package/dist/templates/registry.js.map +1 -0
  133. package/dist/types/api.types.d.ts +134 -0
  134. package/dist/types/api.types.d.ts.map +1 -0
  135. package/dist/types/api.types.js +10 -0
  136. package/dist/types/api.types.js.map +1 -0
  137. package/dist/types/branding.types.d.ts +53 -0
  138. package/dist/types/branding.types.d.ts.map +1 -0
  139. package/dist/types/branding.types.js +10 -0
  140. package/dist/types/branding.types.js.map +1 -0
  141. package/dist/types/config.types.d.ts +201 -0
  142. package/dist/types/config.types.d.ts.map +1 -0
  143. package/dist/types/config.types.js +10 -0
  144. package/dist/types/config.types.js.map +1 -0
  145. package/dist/types/copy.types.d.ts +109 -0
  146. package/dist/types/copy.types.d.ts.map +1 -0
  147. package/dist/types/copy.types.js +10 -0
  148. package/dist/types/copy.types.js.map +1 -0
  149. package/dist/types/index.d.ts +15 -0
  150. package/dist/types/index.d.ts.map +1 -0
  151. package/dist/types/index.js +31 -0
  152. package/dist/types/index.js.map +1 -0
  153. package/dist/types/modes.types.d.ts +197 -0
  154. package/dist/types/modes.types.d.ts.map +1 -0
  155. package/dist/types/modes.types.js +35 -0
  156. package/dist/types/modes.types.js.map +1 -0
  157. package/dist/types/page.types.d.ts +120 -0
  158. package/dist/types/page.types.d.ts.map +1 -0
  159. package/dist/types/page.types.js +10 -0
  160. package/dist/types/page.types.js.map +1 -0
  161. package/package.json +83 -0
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Copy Resolution
3
+ *
4
+ * Resolves UI text and copy with defaults and placeholder substitution.
5
+ *
6
+ * @module @kya-os/consent/resolution/resolve-copy
7
+ */
8
+ import type { ConsentConfig, ConsentUI, ConsentTerms, ConsentSuccess } from "../types/config.types";
9
+ import type { ResolvedConsentCopy } from "../types/copy.types";
10
+ /**
11
+ * Placeholder for agent name in description text
12
+ */
13
+ export declare const AGENT_NAME_PLACEHOLDER = "[AI Agent]";
14
+ /**
15
+ * Resolve UI text with defaults
16
+ *
17
+ * @param ui - Partial UI config
18
+ * @returns Resolved UI with all defaults applied
19
+ */
20
+ export declare function resolveUI(ui?: ConsentUI): Required<ConsentUI>;
21
+ /**
22
+ * Resolve terms config with defaults
23
+ *
24
+ * @param terms - Partial terms config
25
+ * @returns Resolved terms with all defaults applied
26
+ */
27
+ export declare function resolveTerms(terms?: ConsentTerms): Required<ConsentTerms>;
28
+ /**
29
+ * Resolve success page config with defaults
30
+ *
31
+ * @param success - Partial success config
32
+ * @returns Resolved success with all defaults applied
33
+ */
34
+ export declare function resolveSuccess(success?: ConsentSuccess): Required<ConsentSuccess>;
35
+ /**
36
+ * Substitute agent name placeholder in text
37
+ *
38
+ * @param text - Text potentially containing [AI Agent] placeholder
39
+ * @param agentName - Agent name to substitute
40
+ * @returns Text with placeholder replaced
41
+ */
42
+ export declare function substituteAgentName(text: string, agentName?: string): string;
43
+ /**
44
+ * Resolve consent copy from config
45
+ *
46
+ * Applies all defaults and performs placeholder substitution.
47
+ *
48
+ * @param config - Partial consent config
49
+ * @param agentName - Optional agent name for placeholder substitution
50
+ * @returns Fully resolved copy ready for rendering
51
+ */
52
+ export declare function resolveConsentCopy(config?: ConsentConfig, agentName?: string): ResolvedConsentCopy;
53
+ //# sourceMappingURL=resolve-copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-copy.d.ts","sourceRoot":"","sources":["../../src/resolution/resolve-copy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D;;GAEG;AACH,eAAO,MAAM,sBAAsB,eAAe,CAAC;AAEnD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAY7D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAOzE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,CASjF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAK5E;AASD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,CAAC,EAAE,aAAa,EACtB,SAAS,CAAC,EAAE,MAAM,GACjB,mBAAmB,CA0CrB"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ /**
3
+ * Copy Resolution
4
+ *
5
+ * Resolves UI text and copy with defaults and placeholder substitution.
6
+ *
7
+ * @module @kya-os/consent/resolution/resolve-copy
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.AGENT_NAME_PLACEHOLDER = void 0;
11
+ exports.resolveUI = resolveUI;
12
+ exports.resolveTerms = resolveTerms;
13
+ exports.resolveSuccess = resolveSuccess;
14
+ exports.substituteAgentName = substituteAgentName;
15
+ exports.resolveConsentCopy = resolveConsentCopy;
16
+ const defaults_1 = require("../constants/defaults");
17
+ /**
18
+ * Placeholder for agent name in description text
19
+ */
20
+ exports.AGENT_NAME_PLACEHOLDER = "[AI Agent]";
21
+ /**
22
+ * Resolve UI text with defaults
23
+ *
24
+ * @param ui - Partial UI config
25
+ * @returns Resolved UI with all defaults applied
26
+ */
27
+ function resolveUI(ui) {
28
+ return {
29
+ title: ui?.title ?? defaults_1.DEFAULT_UI.title,
30
+ description: ui?.description ?? defaults_1.DEFAULT_UI.description,
31
+ expirationText: ui?.expirationText ?? defaults_1.DEFAULT_UI.expirationText,
32
+ cancelButtonText: ui?.cancelButtonText ?? defaults_1.DEFAULT_UI.cancelButtonText,
33
+ submitButtonText: ui?.submitButtonText ?? defaults_1.DEFAULT_UI.submitButtonText,
34
+ permissionsHeader: ui?.permissionsHeader ?? defaults_1.DEFAULT_UI.permissionsHeader,
35
+ autoClose: ui?.autoClose ?? defaults_1.DEFAULT_UI.autoClose,
36
+ popupEnabled: ui?.popupEnabled ?? defaults_1.DEFAULT_UI.popupEnabled,
37
+ theme: ui?.theme ?? defaults_1.DEFAULT_UI.theme,
38
+ };
39
+ }
40
+ /**
41
+ * Resolve terms config with defaults
42
+ *
43
+ * @param terms - Partial terms config
44
+ * @returns Resolved terms with all defaults applied
45
+ */
46
+ function resolveTerms(terms) {
47
+ return {
48
+ text: terms?.text ?? defaults_1.DEFAULT_TERMS.text,
49
+ url: terms?.url ?? undefined,
50
+ version: terms?.version ?? undefined,
51
+ required: terms?.required ?? defaults_1.DEFAULT_TERMS.required,
52
+ };
53
+ }
54
+ /**
55
+ * Resolve success page config with defaults
56
+ *
57
+ * @param success - Partial success config
58
+ * @returns Resolved success with all defaults applied
59
+ */
60
+ function resolveSuccess(success) {
61
+ return {
62
+ title: success?.title ?? defaults_1.DEFAULT_SUCCESS.title,
63
+ description: success?.description ?? defaults_1.DEFAULT_SUCCESS.description,
64
+ showCredential: success?.showCredential ?? defaults_1.DEFAULT_SUCCESS.showCredential,
65
+ redirectUrl: success?.redirectUrl ?? undefined,
66
+ redirectDelay: success?.redirectDelay ?? undefined,
67
+ continueButtonText: success?.continueButtonText ?? defaults_1.DEFAULT_SUCCESS.continueButtonText,
68
+ };
69
+ }
70
+ /**
71
+ * Substitute agent name placeholder in text
72
+ *
73
+ * @param text - Text potentially containing [AI Agent] placeholder
74
+ * @param agentName - Agent name to substitute
75
+ * @returns Text with placeholder replaced
76
+ */
77
+ function substituteAgentName(text, agentName) {
78
+ if (!agentName) {
79
+ return text;
80
+ }
81
+ return text.replace(new RegExp(escapeRegExp(exports.AGENT_NAME_PLACEHOLDER), "g"), agentName);
82
+ }
83
+ /**
84
+ * Escape special regex characters in a string
85
+ */
86
+ function escapeRegExp(string) {
87
+ return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
88
+ }
89
+ /**
90
+ * Resolve consent copy from config
91
+ *
92
+ * Applies all defaults and performs placeholder substitution.
93
+ *
94
+ * @param config - Partial consent config
95
+ * @param agentName - Optional agent name for placeholder substitution
96
+ * @returns Fully resolved copy ready for rendering
97
+ */
98
+ function resolveConsentCopy(config, agentName) {
99
+ const ui = config?.ui ?? {};
100
+ const terms = config?.terms ?? {};
101
+ const success = config?.success ?? {};
102
+ // Get raw values with defaults
103
+ const rawTitle = ui.title ?? defaults_1.DEFAULT_UI.title;
104
+ const rawDescription = ui.description ?? defaults_1.DEFAULT_UI.description;
105
+ const rawExpirationText = ui.expirationText ?? defaults_1.DEFAULT_UI.expirationText;
106
+ const rawCancelButtonText = ui.cancelButtonText ?? defaults_1.DEFAULT_UI.cancelButtonText;
107
+ const rawSubmitButtonText = ui.submitButtonText ?? defaults_1.DEFAULT_UI.submitButtonText;
108
+ const rawPermissionsHeader = ui.permissionsHeader ?? defaults_1.DEFAULT_UI.permissionsHeader;
109
+ const rawTermsText = terms.text ?? defaults_1.DEFAULT_TERMS.text;
110
+ const rawSuccessTitle = success.title ?? defaults_1.DEFAULT_SUCCESS.title;
111
+ const rawSuccessDescription = success.description ?? defaults_1.DEFAULT_SUCCESS.description;
112
+ // Substitute agent name in description
113
+ const resolvedDescription = substituteAgentName(rawDescription, agentName);
114
+ const resolvedSuccessDescription = substituteAgentName(rawSuccessDescription, agentName);
115
+ return {
116
+ // Raw values (without substitution)
117
+ title: rawTitle,
118
+ description: rawDescription,
119
+ expirationText: rawExpirationText,
120
+ cancelButtonText: rawCancelButtonText,
121
+ submitButtonText: rawSubmitButtonText,
122
+ permissionsHeader: rawPermissionsHeader,
123
+ termsText: rawTermsText,
124
+ termsUrl: terms.url,
125
+ termsRequired: terms.required ?? defaults_1.DEFAULT_TERMS.required,
126
+ // Resolved values (with substitution)
127
+ resolvedDescription,
128
+ // Success page
129
+ successTitle: rawSuccessTitle,
130
+ successDescription: rawSuccessDescription,
131
+ resolvedSuccessDescription,
132
+ showCredential: success.showCredential ?? defaults_1.DEFAULT_SUCCESS.showCredential,
133
+ continueButtonText: success.continueButtonText ?? defaults_1.DEFAULT_SUCCESS.continueButtonText,
134
+ };
135
+ }
136
+ //# sourceMappingURL=resolve-copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-copy.js","sourceRoot":"","sources":["../../src/resolution/resolve-copy.ts"],"names":[],"mappings":"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"}