@shaxpir/duiduidui-models 1.0.0 → 1.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 (223) hide show
  1. package/dist/models/{content/ArrayView.d.ts → ArrayView.d.ts} +1 -1
  2. package/dist/models/{content/ArrayView.js → ArrayView.js} +14 -14
  3. package/dist/models/BayesianScore.d.ts +9 -0
  4. package/dist/models/BayesianScore.js +27 -0
  5. package/dist/models/{markup/ChangeModel.d.ts → ChangeModel.d.ts} +2 -3
  6. package/dist/models/{markup/ChangeModel.js → ChangeModel.js} +20 -10
  7. package/dist/models/{content/Content.d.ts → Content.d.ts} +9 -10
  8. package/dist/models/{content/Content.js → Content.js} +2 -6
  9. package/dist/models/{content/ContentKind.d.ts → ContentKind.d.ts} +3 -0
  10. package/dist/models/{content/ContentKind.js → ContentKind.js} +5 -1
  11. package/dist/models/{content/Device.d.ts → Device.d.ts} +15 -7
  12. package/dist/models/{content/Device.js → Device.js} +14 -18
  13. package/dist/models/Hanzi.d.ts +15 -0
  14. package/dist/models/{content/Manifest.d.ts → Manifest.d.ts} +7 -3
  15. package/dist/models/{content/Manifest.js → Manifest.js} +12 -8
  16. package/dist/models/{content/Media.d.ts → Media.d.ts} +2 -3
  17. package/dist/models/{content/Media.js → Media.js} +4 -5
  18. package/dist/models/{content/Metric.d.ts → Metric.d.ts} +2 -3
  19. package/dist/models/{content/Metric.js → Metric.js} +18 -20
  20. package/dist/models/{content/Model.d.ts → Model.d.ts} +3 -5
  21. package/dist/models/{content/Model.js → Model.js} +5 -6
  22. package/dist/models/{markup/Operation.d.ts → Operation.d.ts} +2 -5
  23. package/dist/models/{markup/Operation.js → Operation.js} +30 -25
  24. package/dist/models/Phrase.d.ts +39 -0
  25. package/dist/models/{content/Profile.d.ts → Profile.d.ts} +1 -2
  26. package/dist/models/{content/Profile.js → Profile.js} +7 -9
  27. package/dist/models/Progress.d.ts +26 -0
  28. package/dist/models/Progress.js +39 -0
  29. package/dist/models/Review.d.ts +14 -0
  30. package/dist/models/{content/Session.d.ts → Session.d.ts} +7 -15
  31. package/dist/models/Session.js +103 -0
  32. package/dist/models/Term.d.ts +36 -0
  33. package/dist/models/Term.js +82 -0
  34. package/dist/models/User.d.ts +32 -0
  35. package/dist/models/User.js +65 -0
  36. package/dist/models/Workspace.d.ts +37 -0
  37. package/dist/models/Workspace.js +94 -0
  38. package/dist/models/index.d.ts +22 -4
  39. package/dist/models/index.js +22 -4
  40. package/dist/repo/PermissiveJson1.d.ts +16 -16
  41. package/dist/repo/PermissiveJson1.js +17 -7
  42. package/dist/repo/ShareSync.d.ts +6 -6
  43. package/dist/repo/ShareSync.js +26 -19
  44. package/dist/repo/index.d.ts +1 -0
  45. package/dist/repo/index.js +1 -0
  46. package/dist/util/index.d.ts +0 -14
  47. package/dist/util/index.js +0 -14
  48. package/lib/index.ts +5 -0
  49. package/lib/models/{content/ArrayView.ts → ArrayView.ts} +2 -2
  50. package/lib/models/BayesianScore.ts +32 -0
  51. package/lib/models/{markup/ChangeModel.ts → ChangeModel.ts} +3 -4
  52. package/lib/models/{content/Content.ts → Content.ts} +15 -18
  53. package/lib/models/{content/ContentKind.ts → ContentKind.ts} +6 -1
  54. package/lib/models/{content/Device.ts → Device.ts} +26 -22
  55. package/lib/models/Hanzi.ts +16 -0
  56. package/lib/models/{content/Manifest.ts → Manifest.ts} +15 -6
  57. package/lib/models/{content/Media.ts → Media.ts} +3 -4
  58. package/lib/models/Metric.ts +233 -0
  59. package/lib/models/{content/Model.ts → Model.ts} +4 -6
  60. package/lib/models/{markup/Operation.ts → Operation.ts} +6 -16
  61. package/lib/models/{content/Permissions.ts → Permissions.ts} +0 -2
  62. package/lib/models/Phrase.ts +53 -0
  63. package/lib/models/{content/Profile.ts → Profile.ts} +4 -6
  64. package/lib/models/Progress.ts +66 -0
  65. package/lib/models/Review.ts +18 -0
  66. package/lib/models/Session.ts +140 -0
  67. package/lib/models/Term.ts +139 -0
  68. package/lib/models/User.ts +97 -0
  69. package/lib/models/Workspace.ts +129 -0
  70. package/lib/models/index.ts +24 -0
  71. package/lib/repo/ShareSync.ts +9 -13
  72. package/lib/repo/index.ts +6 -0
  73. package/lib/util/index.ts +4 -0
  74. package/package.json +4 -15
  75. package/dist/models/OutboundMessage.d.ts +0 -18
  76. package/dist/models/OutboundMessage.js +0 -25
  77. package/dist/models/content/Activity.d.ts +0 -10
  78. package/dist/models/content/Billing.d.ts +0 -144
  79. package/dist/models/content/Billing.js +0 -418
  80. package/dist/models/content/Book.d.ts +0 -77
  81. package/dist/models/content/Book.js +0 -407
  82. package/dist/models/content/Category.d.ts +0 -16
  83. package/dist/models/content/Category.js +0 -20
  84. package/dist/models/content/Checkpointable.d.ts +0 -21
  85. package/dist/models/content/Checkpointable.js +0 -156
  86. package/dist/models/content/Comment.d.ts +0 -19
  87. package/dist/models/content/Comment.js +0 -53
  88. package/dist/models/content/ConceptArt.d.ts +0 -31
  89. package/dist/models/content/ConceptArt.js +0 -84
  90. package/dist/models/content/Context.d.ts +0 -28
  91. package/dist/models/content/Context.js +0 -162
  92. package/dist/models/content/DevEnv.d.ts +0 -5
  93. package/dist/models/content/DevEnv.js +0 -9
  94. package/dist/models/content/Dictionary.d.ts +0 -31
  95. package/dist/models/content/Dictionary.js +0 -5
  96. package/dist/models/content/DictionaryEntry.d.ts +0 -20
  97. package/dist/models/content/DictionaryEntry.js +0 -2
  98. package/dist/models/content/ElasticModel.d.ts +0 -149
  99. package/dist/models/content/ElasticModel.js +0 -179
  100. package/dist/models/content/Environment.d.ts +0 -61
  101. package/dist/models/content/Environment.js +0 -124
  102. package/dist/models/content/ExportOptions.d.ts +0 -64
  103. package/dist/models/content/ExportOptions.js +0 -213
  104. package/dist/models/content/Folder.d.ts +0 -16
  105. package/dist/models/content/Folder.js +0 -33
  106. package/dist/models/content/Fragment.d.ts +0 -54
  107. package/dist/models/content/Fragment.js +0 -181
  108. package/dist/models/content/Hanzi.d.ts +0 -21
  109. package/dist/models/content/HighlightRule.d.ts +0 -9
  110. package/dist/models/content/HighlightRule.js +0 -2
  111. package/dist/models/content/Migration.d.ts +0 -68
  112. package/dist/models/content/Migration.js +0 -155
  113. package/dist/models/content/Phrase.d.ts +0 -8
  114. package/dist/models/content/Placeholder.d.ts +0 -8
  115. package/dist/models/content/Placeholder.js +0 -36
  116. package/dist/models/content/RichText.d.ts +0 -58
  117. package/dist/models/content/RichText.js +0 -79
  118. package/dist/models/content/Session.js +0 -173
  119. package/dist/models/content/Speech.d.ts +0 -67
  120. package/dist/models/content/Speech.js +0 -97
  121. package/dist/models/content/Stub.d.ts +0 -24
  122. package/dist/models/content/Stub.js +0 -179
  123. package/dist/models/content/Time.d.ts +0 -56
  124. package/dist/models/content/Time.js +0 -295
  125. package/dist/models/content/User.d.ts +0 -36
  126. package/dist/models/content/User.js +0 -95
  127. package/dist/models/content/Workspace.d.ts +0 -71
  128. package/dist/models/content/Workspace.js +0 -237
  129. package/dist/models/content/index.d.ts +0 -36
  130. package/dist/models/content/index.js +0 -53
  131. package/dist/models/legacy/LegacyBodyFormat.d.ts +0 -9
  132. package/dist/models/legacy/LegacyBodyFormat.js +0 -2
  133. package/dist/models/legacy/LegacyComment.d.ts +0 -12
  134. package/dist/models/legacy/LegacyComment.js +0 -2
  135. package/dist/models/legacy/LegacyContent.d.ts +0 -53
  136. package/dist/models/legacy/LegacyContent.js +0 -55
  137. package/dist/models/legacy/LegacyConversion.d.ts +0 -55
  138. package/dist/models/legacy/LegacyConversion.js +0 -401
  139. package/dist/models/legacy/LegacyFragment.d.ts +0 -21
  140. package/dist/models/legacy/LegacyFragment.js +0 -2
  141. package/dist/models/legacy/LegacyLocator.d.ts +0 -8
  142. package/dist/models/legacy/LegacyLocator.js +0 -31
  143. package/dist/models/legacy/LegacyOutboundMessage.d.ts +0 -16
  144. package/dist/models/legacy/LegacyOutboundMessage.js +0 -13
  145. package/dist/models/legacy/LegacyPicture.d.ts +0 -14
  146. package/dist/models/legacy/LegacyPicture.js +0 -2
  147. package/dist/models/legacy/LegacyProfile.d.ts +0 -9
  148. package/dist/models/legacy/LegacyProfile.js +0 -2
  149. package/dist/models/legacy/LegacySession.d.ts +0 -41
  150. package/dist/models/legacy/LegacySession.js +0 -35
  151. package/dist/models/legacy/LegacyStory.d.ts +0 -23
  152. package/dist/models/legacy/LegacyStory.js +0 -2
  153. package/dist/models/legacy/LegacyStub.d.ts +0 -15
  154. package/dist/models/legacy/LegacyStub.js +0 -2
  155. package/dist/models/legacy/LegacyTransaction.d.ts +0 -14
  156. package/dist/models/legacy/LegacyTransaction.js +0 -49
  157. package/dist/models/legacy/LegacyUser.d.ts +0 -28
  158. package/dist/models/legacy/LegacyUser.js +0 -32
  159. package/dist/models/legacy/LegacyWorkspace.d.ts +0 -23
  160. package/dist/models/legacy/LegacyWorkspace.js +0 -6
  161. package/dist/models/legacy/index.d.ts +0 -15
  162. package/dist/models/legacy/index.js +0 -32
  163. package/dist/models/markup/BodyFormat.d.ts +0 -14
  164. package/dist/models/markup/BodyFormat.js +0 -190
  165. package/dist/models/markup/DeltaOps.d.ts +0 -5
  166. package/dist/models/markup/DeltaOps.js +0 -74
  167. package/dist/models/markup/HtmlMarkup.d.ts +0 -4
  168. package/dist/models/markup/HtmlMarkup.js +0 -21
  169. package/dist/models/markup/index.d.ts +0 -6
  170. package/dist/models/markup/index.js +0 -23
  171. package/dist/util/Async.d.ts +0 -8
  172. package/dist/util/Async.js +0 -18
  173. package/dist/util/Base62.d.ts +0 -6
  174. package/dist/util/Base62.js +0 -47
  175. package/dist/util/BinarySearch.d.ts +0 -7
  176. package/dist/util/BinarySearch.js +0 -46
  177. package/dist/util/CachingHasher.d.ts +0 -8
  178. package/dist/util/CachingHasher.js +0 -41
  179. package/dist/util/Color.d.ts +0 -32
  180. package/dist/util/Color.js +0 -204
  181. package/dist/util/Dispatch.d.ts +0 -15
  182. package/dist/util/Dispatch.js +0 -79
  183. package/dist/util/EditDistance.d.ts +0 -13
  184. package/dist/util/EditDistance.js +0 -184
  185. package/dist/util/NumberFormat.d.ts +0 -14
  186. package/dist/util/NumberFormat.js +0 -224
  187. package/dist/util/Struct.d.ts +0 -4
  188. package/dist/util/Struct.js +0 -15
  189. package/dist/util/Template.d.ts +0 -16
  190. package/dist/util/Template.js +0 -128
  191. package/dist/util/Text.d.ts +0 -45
  192. package/dist/util/Text.js +0 -243
  193. package/dist/util/Tuples.d.ts +0 -9
  194. package/dist/util/Tuples.js +0 -135
  195. package/dist/util/Validate.d.ts +0 -4
  196. package/dist/util/Validate.js +0 -11
  197. package/dist/util/Vocabulary.d.ts +0 -3
  198. package/dist/util/Vocabulary.js +0 -35
  199. package/lib/models/content/Billing.ts +0 -558
  200. package/lib/models/content/DevEnv.ts +0 -5
  201. package/lib/models/content/DictionaryEntry.ts +0 -22
  202. package/lib/models/content/Hanzi.ts +0 -25
  203. package/lib/models/content/Phrase.ts +0 -10
  204. package/lib/models/content/Time.ts +0 -328
  205. package/lib/models/content/User.ts +0 -130
  206. package/lib/models/markup/DeltaOps.ts +0 -71
  207. package/lib/util/Base62.ts +0 -47
  208. package/lib/util/CachingHasher.ts +0 -38
  209. package/lib/util/Dispatch.ts +0 -92
  210. package/lib/util/NumberFormat.ts +0 -194
  211. package/lib/util/Struct.ts +0 -14
  212. package/lib/util/Tuples.ts +0 -131
  213. /package/dist/models/{content/GeoLocation.d.ts → GeoLocation.d.ts} +0 -0
  214. /package/dist/models/{content/GeoLocation.js → GeoLocation.js} +0 -0
  215. /package/dist/models/{content/Hanzi.js → Hanzi.js} +0 -0
  216. /package/dist/models/{content/Permissions.d.ts → Permissions.d.ts} +0 -0
  217. /package/dist/models/{content/Permissions.js → Permissions.js} +0 -0
  218. /package/dist/models/{content/Phrase.js → Phrase.js} +0 -0
  219. /package/dist/models/{content/Activity.js → Review.js} +0 -0
  220. /package/dist/{models/markup → repo}/TextEditOps.d.ts +0 -0
  221. /package/dist/{models/markup → repo}/TextEditOps.js +0 -0
  222. /package/lib/models/{content/GeoLocation.ts → GeoLocation.ts} +0 -0
  223. /package/lib/{models/markup → repo}/TextEditOps.ts +0 -0
@@ -1,14 +0,0 @@
1
- export declare class NumberFormat {
2
- private static readonly ORDINAL_REGEX;
3
- private static readonly NUMERIC_WORD_SEQUENCE;
4
- private static readonly ROMAN_NUMERALS;
5
- static commas(value: number, keepFractions: boolean): string;
6
- static ordinal(value: number): string;
7
- static isOrdinal(text: string): boolean;
8
- static dollarsFromCents(value: number): string;
9
- static percent(value: number, fractionDigits?: number): string;
10
- static text(value: number): string;
11
- static findNumericWordSequence(text: string): string;
12
- static findRomanNumerals(text: string): string;
13
- static asHex(value: number, padToLength?: number): string;
14
- }
@@ -1,224 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NumberFormat = void 0;
4
- class NumberFormat {
5
- static commas(value, keepFractions) {
6
- if (!Number.isFinite(value)) {
7
- return "0"; // We never want to show "NaN" or "Infinity" in shaxpir. Zero is always preferable.
8
- }
9
- let original = value;
10
- let isNegative = value < 0;
11
- let absValue = Math.abs(value);
12
- let floorValue = Math.floor(absValue);
13
- let v = floorValue;
14
- let formatted = "";
15
- if (v === 0) {
16
- formatted = "0";
17
- }
18
- while (v > 0) {
19
- if (formatted.length > 0) {
20
- formatted = "," + formatted;
21
- }
22
- let remainder = (v % 1000);
23
- v = Math.floor(v / 1000);
24
- if (v > 0) {
25
- if (remainder < 10) {
26
- formatted = "00" + remainder + formatted;
27
- }
28
- else if (remainder < 100) {
29
- formatted = "0" + remainder + formatted;
30
- }
31
- else {
32
- formatted = remainder + formatted;
33
- }
34
- }
35
- else {
36
- formatted = remainder + formatted;
37
- }
38
- }
39
- if (keepFractions && absValue !== floorValue) {
40
- formatted += "." + original.toString().split('.')[1];
41
- }
42
- if (isNegative) {
43
- formatted = "-" + formatted;
44
- }
45
- return formatted;
46
- }
47
- static ordinal(value) {
48
- if (value == 1 || (value % 10 == 1 && value != 11)) {
49
- return "st";
50
- }
51
- else if (value == 2 || (value % 10 == 2 && value != 12)) {
52
- return "nd";
53
- }
54
- else if (value == 3 || (value % 10 == 3 && value != 13)) {
55
- return "rd";
56
- }
57
- else {
58
- return "th";
59
- }
60
- }
61
- static isOrdinal(text) {
62
- return NumberFormat.ORDINAL_REGEX.test(text);
63
- }
64
- static dollarsFromCents(value) {
65
- let dollars = Math.floor(value / 100);
66
- let cents = value - (dollars * 100);
67
- if (cents === 0) {
68
- return "$" + dollars + ".00";
69
- }
70
- else if (cents < 10) {
71
- return "$" + dollars + ".0" + cents;
72
- }
73
- else {
74
- return "$" + dollars + "." + cents;
75
- }
76
- }
77
- static percent(value, fractionDigits = 0) {
78
- let numbers = NumberFormat.commas(value * 100, fractionDigits > 0);
79
- if (fractionDigits > 0 && value !== 0) {
80
- let indexOfDecimal = numbers.lastIndexOf(".");
81
- if (indexOfDecimal >= 0) {
82
- let numsBeforeDecimal = numbers.substring(0, indexOfDecimal);
83
- let numsAfterDecimal = numbers.substring(indexOfDecimal + 1);
84
- if (numsAfterDecimal.length > fractionDigits) {
85
- numbers = numsBeforeDecimal + "." + numsAfterDecimal.substring(0, fractionDigits);
86
- }
87
- }
88
- }
89
- return numbers + "%";
90
- }
91
- static text(value) {
92
- let isNegative = value < 0;
93
- value = Math.abs(Math.round(value));
94
- let asText;
95
- if (value == 0) {
96
- asText = "zero";
97
- }
98
- else if (value == 1) {
99
- asText = "one";
100
- }
101
- else if (value == 2) {
102
- asText = "two";
103
- }
104
- else if (value == 3) {
105
- asText = "three";
106
- }
107
- else if (value == 4) {
108
- asText = "four";
109
- }
110
- else if (value == 5) {
111
- asText = "five";
112
- }
113
- else if (value == 6) {
114
- asText = "six";
115
- }
116
- else if (value == 7) {
117
- asText = "seven";
118
- }
119
- else if (value == 8) {
120
- asText = "eight";
121
- }
122
- else if (value == 9) {
123
- asText = "nine";
124
- }
125
- else if (value == 10) {
126
- asText = "ten";
127
- }
128
- else if (value == 11) {
129
- asText = "eleven";
130
- }
131
- else if (value == 12) {
132
- asText = "twelve";
133
- }
134
- else if (value == 13) {
135
- asText = "thirteen";
136
- }
137
- else if (value == 14) {
138
- asText = "fourteen";
139
- }
140
- else if (value == 15) {
141
- asText = "fifteen";
142
- }
143
- else if (value == 16) {
144
- asText = "sixteen";
145
- }
146
- else if (value == 17) {
147
- asText = "seventeen";
148
- }
149
- else if (value == 18) {
150
- asText = "eighteen";
151
- }
152
- else if (value == 19) {
153
- asText = "nineteen";
154
- }
155
- else if (value >= 20 && value <= 99) {
156
- let tensPlace = Math.floor(value / 10);
157
- let onesPlace = value % 10;
158
- if (tensPlace == 2) {
159
- asText = "twenty";
160
- }
161
- else if (tensPlace == 3) {
162
- asText = "thirty";
163
- }
164
- else if (tensPlace == 4) {
165
- asText = "forty";
166
- }
167
- else if (tensPlace == 5) {
168
- asText = "fifty";
169
- }
170
- else if (tensPlace == 6) {
171
- asText = "sixty";
172
- }
173
- else if (tensPlace == 7) {
174
- asText = "seventy";
175
- }
176
- else if (tensPlace == 8) {
177
- asText = "eighty";
178
- }
179
- else if (tensPlace == 9) {
180
- asText = "ninety";
181
- }
182
- if (onesPlace !== 0) {
183
- asText += "-" + NumberFormat.text(onesPlace);
184
- }
185
- }
186
- else if (value >= 100 && value <= 999) {
187
- let hundredsPlace = Math.floor(value / 100);
188
- asText = NumberFormat.text(hundredsPlace) + " hundred " + NumberFormat.text(value - (hundredsPlace * 100));
189
- }
190
- else if (value >= 1000 && value <= 9999) {
191
- let thousandsPlace = Math.floor(value / 1000);
192
- asText = NumberFormat.text(thousandsPlace) + " thousand " + NumberFormat.text(value - (thousandsPlace * 1000));
193
- }
194
- if (isNegative) {
195
- asText = "minus " + asText;
196
- }
197
- return asText;
198
- }
199
- static findNumericWordSequence(text) {
200
- let result = NumberFormat.NUMERIC_WORD_SEQUENCE.exec(text);
201
- if (result !== null) {
202
- return result[0];
203
- }
204
- return null;
205
- }
206
- static findRomanNumerals(text) {
207
- let result = NumberFormat.ROMAN_NUMERALS.exec(text);
208
- if (result !== null) {
209
- return result[0];
210
- }
211
- return null;
212
- }
213
- static asHex(value, padToLength = 1) {
214
- let hex = Math.floor(value).toString(16);
215
- while (hex.length < padToLength) {
216
- hex = "0" + hex;
217
- }
218
- return hex;
219
- }
220
- }
221
- exports.NumberFormat = NumberFormat;
222
- NumberFormat.ORDINAL_REGEX = /^\d*(?:1st|2nd|3rd|[04-9]th|1[23]th)$/i;
223
- NumberFormat.NUMERIC_WORD_SEQUENCE = /(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|(?:thir|four|fif|six|seven|eigh|nine)teen|(?:twen|thir|for|fif|six|seven|eigh|nine)ty|[mb]illion|thousand|hundred)(?:(?:\s*(?:\sand\s+|-\s*)(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|(?:thir|four|fif|six|seven|eigh|nine)teen|(?:twen|thir|for|fif|six|seven|eigh|nine)ty|[mb]illion|thousand|hundred)))*/i;
224
- NumberFormat.ROMAN_NUMERALS = /\b[MDCLXVI]+\b/i;
@@ -1,4 +0,0 @@
1
- export declare class Struct {
2
- static clone(value: any): any;
3
- static equals(a: any, b: any): boolean;
4
- }
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Struct = void 0;
4
- const rfdc = require("rfdc");
5
- const isEqual = require("fast-deep-equal");
6
- const cloneDeep = rfdc();
7
- class Struct {
8
- static clone(value) {
9
- return cloneDeep(value);
10
- }
11
- static equals(a, b) {
12
- return isEqual(a, b);
13
- }
14
- }
15
- exports.Struct = Struct;
@@ -1,16 +0,0 @@
1
- export declare class TemplateParser {
2
- private static TAG_PATTERN;
3
- static parse(text: string): Template;
4
- private static fromChunks;
5
- private static findEndIndex;
6
- }
7
- export interface Renderable {
8
- render: (params: any) => string;
9
- }
10
- export declare class Template implements Renderable {
11
- private parts;
12
- private name;
13
- private negated;
14
- constructor(parts: Renderable[], name: string, negated: boolean);
15
- render(params: any): string;
16
- }
@@ -1,128 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Template = exports.TemplateParser = void 0;
4
- const HtmlMarkup_1 = require("../models/markup/HtmlMarkup");
5
- class TemplateParser {
6
- static parse(text) {
7
- let chunks = [];
8
- let lastEndIndex = 0;
9
- let match;
10
- while ((match = TemplateParser.TAG_PATTERN.exec(text)) !== null) {
11
- let tagText = match[0];
12
- let index = match.index;
13
- if (index > lastEndIndex) {
14
- let textBeforeTag = text.substring(lastEndIndex, index);
15
- chunks.push(textBeforeTag);
16
- }
17
- chunks.push(tagText);
18
- lastEndIndex = index + tagText.length;
19
- }
20
- if (lastEndIndex < text.length) {
21
- let textAfterTag = text.substring(lastEndIndex);
22
- chunks.push(textAfterTag);
23
- }
24
- return TemplateParser.fromChunks(chunks, null, false);
25
- }
26
- static fromChunks(chunks, name, negated) {
27
- let parts = [];
28
- for (let i = 0, len = chunks.length; i < len; i++) {
29
- let chunk = chunks[i];
30
- if (!chunk.startsWith("{")) {
31
- parts.push(new StringLiteratal(chunk));
32
- }
33
- else if (chunk.startsWith("{{{")) {
34
- if (chunk.endsWith("}}}")) {
35
- let name = chunk.substring(3, chunk.length - 3);
36
- if (name.startsWith("/") || name.startsWith("^") || name.startsWith("#")) {
37
- throw new Error("illegal name for triple-braced template-tag: " + chunk);
38
- }
39
- parts.push(new TemplateTag(name, false));
40
- }
41
- else {
42
- throw new Error("mismatched braces in template-tag: " + chunk);
43
- }
44
- }
45
- else {
46
- if (chunk.endsWith("}}}")) {
47
- throw new Error("mismatched braces in template-tag: " + chunk);
48
- }
49
- else if (chunk.startsWith("{{#") || chunk.startsWith("{{^")) {
50
- let name = chunk.substring(3, chunk.length - 2);
51
- let negated = chunk.startsWith("{{^");
52
- let endIndex = TemplateParser.findEndIndex(chunks, name, i);
53
- if (endIndex - i > 1) {
54
- let subChunks = chunks.slice(i + 1, endIndex);
55
- let template = TemplateParser.fromChunks(subChunks, name, negated);
56
- parts.push(template);
57
- }
58
- i = endIndex;
59
- }
60
- else if (chunk.startsWith("{{/")) {
61
- throw new Error("unmatched end-tag: " + chunk);
62
- }
63
- else {
64
- let name = chunk.substring(2, chunk.length - 2);
65
- parts.push(new TemplateTag(name, true));
66
- }
67
- }
68
- }
69
- return new Template(parts, name, negated);
70
- }
71
- static findEndIndex(chunks, name, startIndex) {
72
- for (let i = startIndex + 1; i < chunks.length; i++) {
73
- let chunk = chunks[i];
74
- if (chunk === "{{/" + name + "}}") {
75
- return i;
76
- }
77
- }
78
- throw new Error("can't find end-index for chunk: " + chunks[startIndex]);
79
- }
80
- }
81
- exports.TemplateParser = TemplateParser;
82
- TemplateParser.TAG_PATTERN = /\{\{.+?\}?\}\}/g;
83
- class Template {
84
- constructor(parts, name, negated) {
85
- this.parts = parts;
86
- this.name = name;
87
- this.negated = negated;
88
- }
89
- render(params) {
90
- let result = "";
91
- if (this.name == null ||
92
- (params.hasOwnProperty(this.name) && params[this.name] === !this.negated)) {
93
- for (let i = 0, len = this.parts.length; i < len; i++) {
94
- let part = this.parts[i];
95
- result += part.render(params);
96
- }
97
- }
98
- return result;
99
- }
100
- }
101
- exports.Template = Template;
102
- class StringLiteratal {
103
- constructor(value) {
104
- this.value = value;
105
- }
106
- render(params) {
107
- return this.value;
108
- }
109
- }
110
- class TemplateTag {
111
- constructor(name, escapeHtml) {
112
- this.name = name;
113
- this.escapeHtml = escapeHtml;
114
- }
115
- render(params) {
116
- if (params.hasOwnProperty(this.name)) {
117
- let value = params[this.name];
118
- if (value !== null) {
119
- let text = "" + value;
120
- if (this.escapeHtml) {
121
- text = HtmlMarkup_1.HtmlMarkup.escapeText(text);
122
- }
123
- return text;
124
- }
125
- }
126
- return "";
127
- }
128
- }
@@ -1,45 +0,0 @@
1
- export declare class Text {
2
- private static readonly WORD_START_CHAR_CLASS;
3
- private static readonly WORD_MIDDLE_CHAR_CLASS;
4
- private static readonly WORD_END_CHAR_CLASS;
5
- private static readonly APOSTROPHE_CHAR_CLASS;
6
- private static readonly WORD_POST_APOS_CHAR_CLASS;
7
- private static readonly WORD_BOUNDARY_BEFORE;
8
- private static readonly WORD_BOUNDARY_AFTER;
9
- private static readonly WORD_PATTERN;
10
- static readonly WORD_REGEX: RegExp;
11
- private static readonly NON_WORD_CHARS;
12
- static countWords(text: string): number;
13
- static tokenizeWords(text: string, keepSeparators: boolean): string[];
14
- static getUniqueWords(text: string): string[];
15
- static capitalizeWords(text: string): string;
16
- static normalizeText(text: string): string;
17
- static normalizeDashes(text: string): string;
18
- static makeCurlyQuotes(text: string): string;
19
- static normalizeApostrophes(text: string): string;
20
- static removeDashes(text: string): string;
21
- static removeApostrophes(text: string): string;
22
- static removePosessive(text: string): string;
23
- static removePlural(word: string): string;
24
- static removeSuffixes(word: string, suffixes: string[]): string;
25
- static stripNonWordChars(text: string): string;
26
- static endsWithAnySuffix(text: string, suffixes: string[]): boolean;
27
- static endsWithWordChar(text: string): boolean;
28
- static isWordChar(c: string): boolean;
29
- static isAllWordChars(text: string): boolean;
30
- static hasAnyWordChars(text: string): boolean;
31
- static isPunctuation(c: string): boolean;
32
- static isAllPunctuation(text: string): boolean;
33
- static hasAnyPunctuation(text: string): boolean;
34
- static isWhitspace(c: string): boolean;
35
- static isAllWhitspace(text: string): boolean;
36
- static hasAnyWhitspace(text: string): boolean;
37
- static isDigit(c: string): boolean;
38
- static isAllDigits(text: string): boolean;
39
- static hasAnyDigits(text: string): boolean;
40
- static isCapitalLetter(c: string): boolean;
41
- static isAllCapitalLetters(text: string): boolean;
42
- static hasAnyCapitalLetters(text: string): boolean;
43
- private static allCharsMatch;
44
- private static anyCharsMatch;
45
- }