@shaxpir/duiduidui-models 1.0.1 → 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 (224) 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 -2
  39. package/dist/models/index.js +22 -2
  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 -6
  47. package/dist/util/index.js +0 -6
  48. package/lib/models/{content/ArrayView.ts → ArrayView.ts} +2 -2
  49. package/lib/models/BayesianScore.ts +32 -0
  50. package/lib/models/{markup/ChangeModel.ts → ChangeModel.ts} +3 -4
  51. package/lib/models/{content/Content.ts → Content.ts} +15 -18
  52. package/lib/models/{content/ContentKind.ts → ContentKind.ts} +6 -1
  53. package/lib/models/{content/Device.ts → Device.ts} +26 -22
  54. package/lib/models/Hanzi.ts +16 -0
  55. package/lib/models/{content/Manifest.ts → Manifest.ts} +15 -6
  56. package/lib/models/{content/Media.ts → Media.ts} +3 -4
  57. package/lib/models/Metric.ts +233 -0
  58. package/lib/models/{content/Model.ts → Model.ts} +4 -6
  59. package/lib/models/{markup/Operation.ts → Operation.ts} +6 -16
  60. package/lib/models/{content/Permissions.ts → Permissions.ts} +0 -2
  61. package/lib/models/Phrase.ts +53 -0
  62. package/lib/models/{content/Profile.ts → Profile.ts} +4 -6
  63. package/lib/models/Progress.ts +66 -0
  64. package/lib/models/Review.ts +18 -0
  65. package/lib/models/Session.ts +140 -0
  66. package/lib/models/Term.ts +139 -0
  67. package/lib/models/User.ts +97 -0
  68. package/lib/models/Workspace.ts +129 -0
  69. package/lib/models/index.ts +22 -2
  70. package/lib/repo/ShareSync.ts +9 -13
  71. package/lib/repo/index.ts +1 -0
  72. package/lib/util/index.ts +0 -6
  73. package/package.json +4 -15
  74. package/dist/models/OutboundMessage.d.ts +0 -18
  75. package/dist/models/OutboundMessage.js +0 -25
  76. package/dist/models/content/Activity.d.ts +0 -10
  77. package/dist/models/content/Billing.d.ts +0 -144
  78. package/dist/models/content/Billing.js +0 -418
  79. package/dist/models/content/Book.d.ts +0 -77
  80. package/dist/models/content/Book.js +0 -407
  81. package/dist/models/content/Category.d.ts +0 -16
  82. package/dist/models/content/Category.js +0 -20
  83. package/dist/models/content/Checkpointable.d.ts +0 -21
  84. package/dist/models/content/Checkpointable.js +0 -156
  85. package/dist/models/content/Comment.d.ts +0 -19
  86. package/dist/models/content/Comment.js +0 -53
  87. package/dist/models/content/ConceptArt.d.ts +0 -31
  88. package/dist/models/content/ConceptArt.js +0 -84
  89. package/dist/models/content/Context.d.ts +0 -28
  90. package/dist/models/content/Context.js +0 -162
  91. package/dist/models/content/DevEnv.d.ts +0 -5
  92. package/dist/models/content/DevEnv.js +0 -9
  93. package/dist/models/content/Dictionary.d.ts +0 -31
  94. package/dist/models/content/Dictionary.js +0 -5
  95. package/dist/models/content/DictionaryEntry.d.ts +0 -20
  96. package/dist/models/content/DictionaryEntry.js +0 -2
  97. package/dist/models/content/ElasticModel.d.ts +0 -149
  98. package/dist/models/content/ElasticModel.js +0 -179
  99. package/dist/models/content/Environment.d.ts +0 -61
  100. package/dist/models/content/Environment.js +0 -124
  101. package/dist/models/content/ExportOptions.d.ts +0 -64
  102. package/dist/models/content/ExportOptions.js +0 -213
  103. package/dist/models/content/Folder.d.ts +0 -16
  104. package/dist/models/content/Folder.js +0 -33
  105. package/dist/models/content/Fragment.d.ts +0 -54
  106. package/dist/models/content/Fragment.js +0 -181
  107. package/dist/models/content/Hanzi.d.ts +0 -21
  108. package/dist/models/content/HighlightRule.d.ts +0 -9
  109. package/dist/models/content/HighlightRule.js +0 -2
  110. package/dist/models/content/Migration.d.ts +0 -68
  111. package/dist/models/content/Migration.js +0 -155
  112. package/dist/models/content/Phrase.d.ts +0 -8
  113. package/dist/models/content/Placeholder.d.ts +0 -8
  114. package/dist/models/content/Placeholder.js +0 -36
  115. package/dist/models/content/RichText.d.ts +0 -58
  116. package/dist/models/content/RichText.js +0 -79
  117. package/dist/models/content/Session.js +0 -173
  118. package/dist/models/content/Speech.d.ts +0 -67
  119. package/dist/models/content/Speech.js +0 -97
  120. package/dist/models/content/Stub.d.ts +0 -24
  121. package/dist/models/content/Stub.js +0 -179
  122. package/dist/models/content/Time.d.ts +0 -56
  123. package/dist/models/content/Time.js +0 -295
  124. package/dist/models/content/User.d.ts +0 -36
  125. package/dist/models/content/User.js +0 -95
  126. package/dist/models/content/Workspace.d.ts +0 -71
  127. package/dist/models/content/Workspace.js +0 -237
  128. package/dist/models/content/index.d.ts +0 -17
  129. package/dist/models/content/index.js +0 -34
  130. package/dist/models/legacy/LegacyBodyFormat.d.ts +0 -9
  131. package/dist/models/legacy/LegacyBodyFormat.js +0 -2
  132. package/dist/models/legacy/LegacyComment.d.ts +0 -12
  133. package/dist/models/legacy/LegacyComment.js +0 -2
  134. package/dist/models/legacy/LegacyContent.d.ts +0 -53
  135. package/dist/models/legacy/LegacyContent.js +0 -55
  136. package/dist/models/legacy/LegacyConversion.d.ts +0 -55
  137. package/dist/models/legacy/LegacyConversion.js +0 -401
  138. package/dist/models/legacy/LegacyFragment.d.ts +0 -21
  139. package/dist/models/legacy/LegacyFragment.js +0 -2
  140. package/dist/models/legacy/LegacyLocator.d.ts +0 -8
  141. package/dist/models/legacy/LegacyLocator.js +0 -31
  142. package/dist/models/legacy/LegacyOutboundMessage.d.ts +0 -16
  143. package/dist/models/legacy/LegacyOutboundMessage.js +0 -13
  144. package/dist/models/legacy/LegacyPicture.d.ts +0 -14
  145. package/dist/models/legacy/LegacyPicture.js +0 -2
  146. package/dist/models/legacy/LegacyProfile.d.ts +0 -9
  147. package/dist/models/legacy/LegacyProfile.js +0 -2
  148. package/dist/models/legacy/LegacySession.d.ts +0 -41
  149. package/dist/models/legacy/LegacySession.js +0 -35
  150. package/dist/models/legacy/LegacyStory.d.ts +0 -23
  151. package/dist/models/legacy/LegacyStory.js +0 -2
  152. package/dist/models/legacy/LegacyStub.d.ts +0 -15
  153. package/dist/models/legacy/LegacyStub.js +0 -2
  154. package/dist/models/legacy/LegacyTransaction.d.ts +0 -14
  155. package/dist/models/legacy/LegacyTransaction.js +0 -49
  156. package/dist/models/legacy/LegacyUser.d.ts +0 -28
  157. package/dist/models/legacy/LegacyUser.js +0 -32
  158. package/dist/models/legacy/LegacyWorkspace.d.ts +0 -23
  159. package/dist/models/legacy/LegacyWorkspace.js +0 -6
  160. package/dist/models/legacy/index.d.ts +0 -15
  161. package/dist/models/legacy/index.js +0 -32
  162. package/dist/models/markup/BodyFormat.d.ts +0 -14
  163. package/dist/models/markup/BodyFormat.js +0 -190
  164. package/dist/models/markup/DeltaOps.d.ts +0 -5
  165. package/dist/models/markup/DeltaOps.js +0 -74
  166. package/dist/models/markup/HtmlMarkup.d.ts +0 -4
  167. package/dist/models/markup/HtmlMarkup.js +0 -21
  168. package/dist/models/markup/index.d.ts +0 -4
  169. package/dist/models/markup/index.js +0 -21
  170. package/dist/util/Async.d.ts +0 -8
  171. package/dist/util/Async.js +0 -18
  172. package/dist/util/Base62.d.ts +0 -6
  173. package/dist/util/Base62.js +0 -47
  174. package/dist/util/BinarySearch.d.ts +0 -7
  175. package/dist/util/BinarySearch.js +0 -46
  176. package/dist/util/CachingHasher.d.ts +0 -8
  177. package/dist/util/CachingHasher.js +0 -41
  178. package/dist/util/Color.d.ts +0 -32
  179. package/dist/util/Color.js +0 -204
  180. package/dist/util/Dispatch.d.ts +0 -15
  181. package/dist/util/Dispatch.js +0 -79
  182. package/dist/util/EditDistance.d.ts +0 -13
  183. package/dist/util/EditDistance.js +0 -184
  184. package/dist/util/NumberFormat.d.ts +0 -14
  185. package/dist/util/NumberFormat.js +0 -224
  186. package/dist/util/Struct.d.ts +0 -4
  187. package/dist/util/Struct.js +0 -15
  188. package/dist/util/Template.d.ts +0 -16
  189. package/dist/util/Template.js +0 -128
  190. package/dist/util/Text.d.ts +0 -45
  191. package/dist/util/Text.js +0 -243
  192. package/dist/util/Tuples.d.ts +0 -9
  193. package/dist/util/Tuples.js +0 -135
  194. package/dist/util/Validate.d.ts +0 -4
  195. package/dist/util/Validate.js +0 -11
  196. package/dist/util/Vocabulary.d.ts +0 -3
  197. package/dist/util/Vocabulary.js +0 -35
  198. package/lib/models/content/Billing.ts +0 -558
  199. package/lib/models/content/DevEnv.ts +0 -5
  200. package/lib/models/content/DictionaryEntry.ts +0 -22
  201. package/lib/models/content/Hanzi.ts +0 -25
  202. package/lib/models/content/Phrase.ts +0 -10
  203. package/lib/models/content/Time.ts +0 -328
  204. package/lib/models/content/User.ts +0 -130
  205. package/lib/models/content/index.ts +0 -19
  206. package/lib/models/markup/DeltaOps.ts +0 -71
  207. package/lib/models/markup/index.ts +0 -6
  208. package/lib/util/Base62.ts +0 -47
  209. package/lib/util/CachingHasher.ts +0 -38
  210. package/lib/util/Dispatch.ts +0 -92
  211. package/lib/util/NumberFormat.ts +0 -194
  212. package/lib/util/Struct.ts +0 -14
  213. package/lib/util/Tuples.ts +0 -131
  214. /package/dist/models/{content/GeoLocation.d.ts → GeoLocation.d.ts} +0 -0
  215. /package/dist/models/{content/GeoLocation.js → GeoLocation.js} +0 -0
  216. /package/dist/models/{content/Hanzi.js → Hanzi.js} +0 -0
  217. /package/dist/models/{content/Permissions.d.ts → Permissions.d.ts} +0 -0
  218. /package/dist/models/{content/Permissions.js → Permissions.js} +0 -0
  219. /package/dist/models/{content/Phrase.js → Phrase.js} +0 -0
  220. /package/dist/models/{content/Activity.js → Review.js} +0 -0
  221. /package/dist/{models/markup → repo}/TextEditOps.d.ts +0 -0
  222. /package/dist/{models/markup → repo}/TextEditOps.js +0 -0
  223. /package/lib/models/{content/GeoLocation.ts → GeoLocation.ts} +0 -0
  224. /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
- }