@shaxpir/duiduidui-models 1.0.1 → 1.2.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 (226) 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/Encryption.d.ts +1 -1
  47. package/dist/util/index.d.ts +0 -6
  48. package/dist/util/index.js +0 -6
  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 +22 -2
  71. package/lib/repo/ShareSync.ts +9 -13
  72. package/lib/repo/index.ts +1 -0
  73. package/lib/util/Encryption.ts +1 -1
  74. package/lib/util/index.ts +0 -6
  75. package/package.json +4 -15
  76. package/dist/models/OutboundMessage.d.ts +0 -18
  77. package/dist/models/OutboundMessage.js +0 -25
  78. package/dist/models/content/Activity.d.ts +0 -10
  79. package/dist/models/content/Billing.d.ts +0 -144
  80. package/dist/models/content/Billing.js +0 -418
  81. package/dist/models/content/Book.d.ts +0 -77
  82. package/dist/models/content/Book.js +0 -407
  83. package/dist/models/content/Category.d.ts +0 -16
  84. package/dist/models/content/Category.js +0 -20
  85. package/dist/models/content/Checkpointable.d.ts +0 -21
  86. package/dist/models/content/Checkpointable.js +0 -156
  87. package/dist/models/content/Comment.d.ts +0 -19
  88. package/dist/models/content/Comment.js +0 -53
  89. package/dist/models/content/ConceptArt.d.ts +0 -31
  90. package/dist/models/content/ConceptArt.js +0 -84
  91. package/dist/models/content/Context.d.ts +0 -28
  92. package/dist/models/content/Context.js +0 -162
  93. package/dist/models/content/DevEnv.d.ts +0 -5
  94. package/dist/models/content/DevEnv.js +0 -9
  95. package/dist/models/content/Dictionary.d.ts +0 -31
  96. package/dist/models/content/Dictionary.js +0 -5
  97. package/dist/models/content/DictionaryEntry.d.ts +0 -20
  98. package/dist/models/content/DictionaryEntry.js +0 -2
  99. package/dist/models/content/ElasticModel.d.ts +0 -149
  100. package/dist/models/content/ElasticModel.js +0 -179
  101. package/dist/models/content/Environment.d.ts +0 -61
  102. package/dist/models/content/Environment.js +0 -124
  103. package/dist/models/content/ExportOptions.d.ts +0 -64
  104. package/dist/models/content/ExportOptions.js +0 -213
  105. package/dist/models/content/Folder.d.ts +0 -16
  106. package/dist/models/content/Folder.js +0 -33
  107. package/dist/models/content/Fragment.d.ts +0 -54
  108. package/dist/models/content/Fragment.js +0 -181
  109. package/dist/models/content/Hanzi.d.ts +0 -21
  110. package/dist/models/content/HighlightRule.d.ts +0 -9
  111. package/dist/models/content/HighlightRule.js +0 -2
  112. package/dist/models/content/Migration.d.ts +0 -68
  113. package/dist/models/content/Migration.js +0 -155
  114. package/dist/models/content/Phrase.d.ts +0 -8
  115. package/dist/models/content/Placeholder.d.ts +0 -8
  116. package/dist/models/content/Placeholder.js +0 -36
  117. package/dist/models/content/RichText.d.ts +0 -58
  118. package/dist/models/content/RichText.js +0 -79
  119. package/dist/models/content/Session.js +0 -173
  120. package/dist/models/content/Speech.d.ts +0 -67
  121. package/dist/models/content/Speech.js +0 -97
  122. package/dist/models/content/Stub.d.ts +0 -24
  123. package/dist/models/content/Stub.js +0 -179
  124. package/dist/models/content/Time.d.ts +0 -56
  125. package/dist/models/content/Time.js +0 -295
  126. package/dist/models/content/User.d.ts +0 -36
  127. package/dist/models/content/User.js +0 -95
  128. package/dist/models/content/Workspace.d.ts +0 -71
  129. package/dist/models/content/Workspace.js +0 -237
  130. package/dist/models/content/index.d.ts +0 -17
  131. package/dist/models/content/index.js +0 -34
  132. package/dist/models/legacy/LegacyBodyFormat.d.ts +0 -9
  133. package/dist/models/legacy/LegacyBodyFormat.js +0 -2
  134. package/dist/models/legacy/LegacyComment.d.ts +0 -12
  135. package/dist/models/legacy/LegacyComment.js +0 -2
  136. package/dist/models/legacy/LegacyContent.d.ts +0 -53
  137. package/dist/models/legacy/LegacyContent.js +0 -55
  138. package/dist/models/legacy/LegacyConversion.d.ts +0 -55
  139. package/dist/models/legacy/LegacyConversion.js +0 -401
  140. package/dist/models/legacy/LegacyFragment.d.ts +0 -21
  141. package/dist/models/legacy/LegacyFragment.js +0 -2
  142. package/dist/models/legacy/LegacyLocator.d.ts +0 -8
  143. package/dist/models/legacy/LegacyLocator.js +0 -31
  144. package/dist/models/legacy/LegacyOutboundMessage.d.ts +0 -16
  145. package/dist/models/legacy/LegacyOutboundMessage.js +0 -13
  146. package/dist/models/legacy/LegacyPicture.d.ts +0 -14
  147. package/dist/models/legacy/LegacyPicture.js +0 -2
  148. package/dist/models/legacy/LegacyProfile.d.ts +0 -9
  149. package/dist/models/legacy/LegacyProfile.js +0 -2
  150. package/dist/models/legacy/LegacySession.d.ts +0 -41
  151. package/dist/models/legacy/LegacySession.js +0 -35
  152. package/dist/models/legacy/LegacyStory.d.ts +0 -23
  153. package/dist/models/legacy/LegacyStory.js +0 -2
  154. package/dist/models/legacy/LegacyStub.d.ts +0 -15
  155. package/dist/models/legacy/LegacyStub.js +0 -2
  156. package/dist/models/legacy/LegacyTransaction.d.ts +0 -14
  157. package/dist/models/legacy/LegacyTransaction.js +0 -49
  158. package/dist/models/legacy/LegacyUser.d.ts +0 -28
  159. package/dist/models/legacy/LegacyUser.js +0 -32
  160. package/dist/models/legacy/LegacyWorkspace.d.ts +0 -23
  161. package/dist/models/legacy/LegacyWorkspace.js +0 -6
  162. package/dist/models/legacy/index.d.ts +0 -15
  163. package/dist/models/legacy/index.js +0 -32
  164. package/dist/models/markup/BodyFormat.d.ts +0 -14
  165. package/dist/models/markup/BodyFormat.js +0 -190
  166. package/dist/models/markup/DeltaOps.d.ts +0 -5
  167. package/dist/models/markup/DeltaOps.js +0 -74
  168. package/dist/models/markup/HtmlMarkup.d.ts +0 -4
  169. package/dist/models/markup/HtmlMarkup.js +0 -21
  170. package/dist/models/markup/index.d.ts +0 -4
  171. package/dist/models/markup/index.js +0 -21
  172. package/dist/util/Async.d.ts +0 -8
  173. package/dist/util/Async.js +0 -18
  174. package/dist/util/Base62.d.ts +0 -6
  175. package/dist/util/Base62.js +0 -47
  176. package/dist/util/BinarySearch.d.ts +0 -7
  177. package/dist/util/BinarySearch.js +0 -46
  178. package/dist/util/CachingHasher.d.ts +0 -8
  179. package/dist/util/CachingHasher.js +0 -41
  180. package/dist/util/Color.d.ts +0 -32
  181. package/dist/util/Color.js +0 -204
  182. package/dist/util/Dispatch.d.ts +0 -15
  183. package/dist/util/Dispatch.js +0 -79
  184. package/dist/util/EditDistance.d.ts +0 -13
  185. package/dist/util/EditDistance.js +0 -184
  186. package/dist/util/NumberFormat.d.ts +0 -14
  187. package/dist/util/NumberFormat.js +0 -224
  188. package/dist/util/Struct.d.ts +0 -4
  189. package/dist/util/Struct.js +0 -15
  190. package/dist/util/Template.d.ts +0 -16
  191. package/dist/util/Template.js +0 -128
  192. package/dist/util/Text.d.ts +0 -45
  193. package/dist/util/Text.js +0 -243
  194. package/dist/util/Tuples.d.ts +0 -9
  195. package/dist/util/Tuples.js +0 -135
  196. package/dist/util/Validate.d.ts +0 -4
  197. package/dist/util/Validate.js +0 -11
  198. package/dist/util/Vocabulary.d.ts +0 -3
  199. package/dist/util/Vocabulary.js +0 -35
  200. package/lib/models/content/Billing.ts +0 -558
  201. package/lib/models/content/DevEnv.ts +0 -5
  202. package/lib/models/content/DictionaryEntry.ts +0 -22
  203. package/lib/models/content/Hanzi.ts +0 -25
  204. package/lib/models/content/Phrase.ts +0 -10
  205. package/lib/models/content/Time.ts +0 -328
  206. package/lib/models/content/User.ts +0 -130
  207. package/lib/models/content/index.ts +0 -19
  208. package/lib/models/markup/DeltaOps.ts +0 -71
  209. package/lib/models/markup/index.ts +0 -6
  210. package/lib/util/Base62.ts +0 -47
  211. package/lib/util/CachingHasher.ts +0 -38
  212. package/lib/util/Dispatch.ts +0 -92
  213. package/lib/util/NumberFormat.ts +0 -194
  214. package/lib/util/Struct.ts +0 -14
  215. package/lib/util/Tuples.ts +0 -131
  216. /package/dist/models/{content/GeoLocation.d.ts → GeoLocation.d.ts} +0 -0
  217. /package/dist/models/{content/GeoLocation.js → GeoLocation.js} +0 -0
  218. /package/dist/models/{content/Hanzi.js → Hanzi.js} +0 -0
  219. /package/dist/models/{content/Permissions.d.ts → Permissions.d.ts} +0 -0
  220. /package/dist/models/{content/Permissions.js → Permissions.js} +0 -0
  221. /package/dist/models/{content/Phrase.js → Phrase.js} +0 -0
  222. /package/dist/models/{content/Activity.js → Review.js} +0 -0
  223. /package/dist/{models/markup → repo}/TextEditOps.d.ts +0 -0
  224. /package/dist/{models/markup → repo}/TextEditOps.js +0 -0
  225. /package/lib/models/{content/GeoLocation.ts → GeoLocation.ts} +0 -0
  226. /package/lib/{models/markup → repo}/TextEditOps.ts +0 -0
@@ -1,213 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExportOptionsModel = exports.FragmentContext = exports.BreakStyle = exports.PrefixStyle = exports.NumberStyle = exports.NameStyle = exports.ExportFormat = void 0;
4
- const Struct_1 = require("../../util/Struct");
5
- const Book_1 = require("./Book");
6
- const Category_1 = require("./Category");
7
- var ExportFormat;
8
- (function (ExportFormat) {
9
- ExportFormat["EPUB"] = "epub";
10
- ExportFormat["HTML"] = "html";
11
- ExportFormat["DOCX"] = "docx";
12
- })(ExportFormat || (exports.ExportFormat = ExportFormat = {}));
13
- var NameStyle;
14
- (function (NameStyle) {
15
- NameStyle["TITLE"] = "title";
16
- NameStyle["NONE"] = "none";
17
- })(NameStyle || (exports.NameStyle = NameStyle = {}));
18
- var NumberStyle;
19
- (function (NumberStyle) {
20
- NumberStyle["DIGITS"] = "digits";
21
- NumberStyle["WORDS"] = "words";
22
- NumberStyle["NONE"] = "none";
23
- })(NumberStyle || (exports.NumberStyle = NumberStyle = {}));
24
- var PrefixStyle;
25
- (function (PrefixStyle) {
26
- PrefixStyle["CATEGORY"] = "category";
27
- PrefixStyle["NONE"] = "none";
28
- })(PrefixStyle || (exports.PrefixStyle = PrefixStyle = {}));
29
- var BreakStyle;
30
- (function (BreakStyle) {
31
- BreakStyle["PAGE"] = "page";
32
- BreakStyle["PROSE"] = "prose";
33
- BreakStyle["NONE"] = "none";
34
- })(BreakStyle || (exports.BreakStyle = BreakStyle = {}));
35
- ;
36
- // Convergence-TODO refactor all uses of this to BookStubArrayKey
37
- var FragmentContext;
38
- (function (FragmentContext) {
39
- FragmentContext["MANUSCRIPT"] = "manuscript";
40
- FragmentContext["NOTEBOOK"] = "notebook";
41
- })(FragmentContext || (exports.FragmentContext = FragmentContext = {}));
42
- class ExportOptionsModel {
43
- static build(bookPayload) {
44
- const options = {};
45
- // Gather all the categories, from all the stubs in this book.
46
- const manuscriptCategories = Book_1.Book.harvestUniqueCategories(bookPayload, Book_1.BookStubArrayKey.MANUSCRIPT);
47
- const notebookCategories = Book_1.Book.harvestUniqueCategories(bookPayload, Book_1.BookStubArrayKey.NOTEBOOK);
48
- // We should always include FOLDER as a category, because the MANUSCRIPT and NOTEBOOK
49
- // are each wrapped in a folder when included together in an export.
50
- // Use cascading logic to combine story options with default options.
51
- if (!manuscriptCategories.includes(Category_1.Category.FOLDER)) {
52
- manuscriptCategories.push(Category_1.Category.FOLDER);
53
- }
54
- if (!notebookCategories.includes(Category_1.Category.FOLDER)) {
55
- notebookCategories.push(Category_1.Category.FOLDER);
56
- }
57
- // If this book doesn't yet have its own options, clone the default ones.
58
- const defaultOptions = ExportOptionsModel.makeDefaultOptions();
59
- let bookOptions = bookPayload.hasOwnProperty("export_options") ?
60
- Struct_1.Struct.clone(bookPayload.export_options) : Struct_1.Struct.clone(defaultOptions);
61
- // Populate the options for all the different formats
62
- options.selected_format = bookOptions.selected_format;
63
- options.formats = {};
64
- for (let i = 0, iLen = ExportOptionsModel.ALL_FORMATS.length; i < iLen; i++) {
65
- const format = ExportOptionsModel.ALL_FORMATS[i];
66
- if (!bookOptions.formats.hasOwnProperty(format)) {
67
- bookOptions.formats[format] = defaultOptions.formats[format];
68
- }
69
- const optionsForThisFormat = {
70
- include_toc: bookOptions.formats[format].include_toc,
71
- include_synopsis: bookOptions.formats[format].include_synopsis
72
- };
73
- // Populate the MANUSCRIPT options for this format
74
- optionsForThisFormat.manuscript = {
75
- include: bookOptions.formats[format].manuscript.include,
76
- categories: {}
77
- };
78
- for (let j = 0, jLen = manuscriptCategories.length; j < jLen; j++) {
79
- const category = manuscriptCategories[j];
80
- let optionsForCategory;
81
- if (optionsForThisFormat.manuscript.categories.hasOwnProperty(category)) {
82
- optionsForCategory = bookOptions.formats[format].manuscript.categories[category];
83
- }
84
- else if (defaultOptions.formats[format].manuscript.categories.hasOwnProperty(category)) {
85
- optionsForCategory = defaultOptions.formats[format].manuscript.categories[category];
86
- }
87
- else {
88
- optionsForCategory = ExportOptionsModel.makeOptionsForCustomCategoryByContext(FragmentContext.MANUSCRIPT);
89
- }
90
- optionsForThisFormat.manuscript.categories[category] = optionsForCategory;
91
- }
92
- // Populate the NOTEBOOK options for this format
93
- optionsForThisFormat.notebook = {
94
- include: bookOptions.formats[format].notebook.include,
95
- categories: {}
96
- };
97
- for (let j = 0, jLen = notebookCategories.length; j < jLen; j++) {
98
- const category = notebookCategories[j];
99
- let optionsForCategory;
100
- if (optionsForThisFormat.notebook.categories.hasOwnProperty(category)) {
101
- optionsForCategory = bookOptions.formats[format].notebook.categories[category];
102
- }
103
- else if (defaultOptions.formats[format].notebook.categories.hasOwnProperty(category)) {
104
- optionsForCategory = defaultOptions.formats[format].notebook.categories[category];
105
- }
106
- else {
107
- optionsForCategory = ExportOptionsModel.makeOptionsForCustomCategoryByContext(FragmentContext.NOTEBOOK);
108
- }
109
- optionsForThisFormat.notebook.categories[category] = optionsForCategory;
110
- }
111
- options.formats[format] = optionsForThisFormat;
112
- }
113
- return options;
114
- }
115
- static makeDefaultOptions() {
116
- const defaults = {
117
- "selected_format": ExportFormat.EPUB,
118
- "formats": {}
119
- };
120
- defaults.formats[ExportFormat.EPUB] = ExportOptionsModel.makeDefaultOptionsForFormat(ExportFormat.EPUB);
121
- defaults.formats[ExportFormat.HTML] = ExportOptionsModel.makeDefaultOptionsForFormat(ExportFormat.HTML);
122
- defaults.formats[ExportFormat.DOCX] = ExportOptionsModel.makeDefaultOptionsForFormat(ExportFormat.DOCX);
123
- return defaults;
124
- }
125
- static makeDefaultOptionsForFormat(format) {
126
- // NOTE: default options are the same for all formats.
127
- return {
128
- "include_toc": true,
129
- "include_synopsis": false,
130
- "manuscript": {
131
- "include": true,
132
- "categories": ExportOptionsModel.makeDefaultCategoryOptionsForContext(FragmentContext.MANUSCRIPT)
133
- },
134
- "notebook": {
135
- "include": false,
136
- "categories": ExportOptionsModel.makeDefaultCategoryOptionsForContext(FragmentContext.NOTEBOOK)
137
- },
138
- };
139
- }
140
- static makeDefaultCategoryOptionsForContext(context) {
141
- const options = {};
142
- if (context === FragmentContext.MANUSCRIPT) {
143
- options[Category_1.Category.FOLDER] = ExportOptionsModel.makeDefaultOptionsByCategory(context, Category_1.Category.FOLDER);
144
- options[Category_1.Category.FRONT_MATTER] = ExportOptionsModel.makeDefaultOptionsByCategory(context, Category_1.Category.FRONT_MATTER);
145
- options[Category_1.Category.BACK_MATTER] = ExportOptionsModel.makeDefaultOptionsByCategory(context, Category_1.Category.BACK_MATTER);
146
- options[Category_1.Category.PART] = ExportOptionsModel.makeDefaultOptionsByCategory(context, Category_1.Category.PART);
147
- options[Category_1.Category.CHAPTER] = ExportOptionsModel.makeDefaultOptionsByCategory(context, Category_1.Category.CHAPTER);
148
- options[Category_1.Category.SCENE] = ExportOptionsModel.makeDefaultOptionsByCategory(context, Category_1.Category.SCENE);
149
- }
150
- else if (context === FragmentContext.NOTEBOOK) {
151
- options[Category_1.Category.FOLDER] = ExportOptionsModel.makeDefaultOptionsByCategory(context, Category_1.Category.FOLDER);
152
- options[Category_1.Category.NOTE] = ExportOptionsModel.makeDefaultOptionsByCategory(context, Category_1.Category.NOTE);
153
- options[Category_1.Category.CHARACTER] = ExportOptionsModel.makeDefaultOptionsByCategory(context, Category_1.Category.CHARACTER);
154
- options[Category_1.Category.PLACE] = ExportOptionsModel.makeDefaultOptionsByCategory(context, Category_1.Category.PLACE);
155
- options[Category_1.Category.THEME] = ExportOptionsModel.makeDefaultOptionsByCategory(context, Category_1.Category.THEME);
156
- }
157
- return options;
158
- }
159
- static makeDefaultOptionsByCategory(context, category) {
160
- if (category == Category_1.Category.FOLDER) {
161
- return ExportOptionsModel.makeCategoryOptions(true, NameStyle.TITLE, NumberStyle.NONE, PrefixStyle.NONE, BreakStyle.PAGE);
162
- }
163
- else if (category == Category_1.Category.FRONT_MATTER) {
164
- return ExportOptionsModel.makeCategoryOptions(true, NameStyle.TITLE, NumberStyle.NONE, PrefixStyle.NONE, BreakStyle.PAGE);
165
- }
166
- else if (category == Category_1.Category.BACK_MATTER) {
167
- return ExportOptionsModel.makeCategoryOptions(true, NameStyle.TITLE, NumberStyle.NONE, PrefixStyle.NONE, BreakStyle.PAGE);
168
- }
169
- else if (category == Category_1.Category.PART) {
170
- return ExportOptionsModel.makeCategoryOptions(true, NameStyle.NONE, NumberStyle.WORDS, PrefixStyle.CATEGORY, BreakStyle.PAGE);
171
- }
172
- else if (category == Category_1.Category.CHAPTER) {
173
- return ExportOptionsModel.makeCategoryOptions(true, NameStyle.NONE, NumberStyle.DIGITS, PrefixStyle.CATEGORY, BreakStyle.PAGE);
174
- }
175
- else if (category == Category_1.Category.SCENE) {
176
- return ExportOptionsModel.makeCategoryOptions(false, NameStyle.NONE, NumberStyle.NONE, PrefixStyle.NONE, BreakStyle.PROSE);
177
- }
178
- else if (category == Category_1.Category.NOTE) {
179
- return ExportOptionsModel.makeCategoryOptions(true, NameStyle.TITLE, NumberStyle.NONE, PrefixStyle.NONE, BreakStyle.PAGE);
180
- }
181
- else if (category == Category_1.Category.CHARACTER) {
182
- return ExportOptionsModel.makeCategoryOptions(true, NameStyle.TITLE, NumberStyle.NONE, PrefixStyle.NONE, BreakStyle.PAGE);
183
- }
184
- else if (category == Category_1.Category.PLACE) {
185
- return ExportOptionsModel.makeCategoryOptions(true, NameStyle.TITLE, NumberStyle.NONE, PrefixStyle.NONE, BreakStyle.PAGE);
186
- }
187
- else if (category == Category_1.Category.THEME) {
188
- return ExportOptionsModel.makeCategoryOptions(true, NameStyle.TITLE, NumberStyle.NONE, PrefixStyle.NONE, BreakStyle.PAGE);
189
- }
190
- else {
191
- return ExportOptionsModel.makeOptionsForCustomCategoryByContext(context);
192
- }
193
- }
194
- static makeOptionsForCustomCategoryByContext(context) {
195
- if (context === FragmentContext.MANUSCRIPT) {
196
- return ExportOptionsModel.makeCategoryOptions(true, NameStyle.TITLE, NumberStyle.WORDS, PrefixStyle.CATEGORY, BreakStyle.PAGE);
197
- }
198
- else if (context === FragmentContext.NOTEBOOK) {
199
- return ExportOptionsModel.makeCategoryOptions(true, NameStyle.TITLE, NumberStyle.NONE, PrefixStyle.CATEGORY, BreakStyle.PAGE);
200
- }
201
- }
202
- static makeCategoryOptions(addToToc, nameStyle, numberStyle, prefixStyle, breakStyle) {
203
- return {
204
- "toc": addToToc,
205
- "name": nameStyle,
206
- "number": numberStyle,
207
- "prefix": prefixStyle,
208
- "brk": breakStyle
209
- };
210
- }
211
- }
212
- exports.ExportOptionsModel = ExportOptionsModel;
213
- ExportOptionsModel.ALL_FORMATS = [ExportFormat.HTML, ExportFormat.EPUB, ExportFormat.DOCX];
@@ -1,16 +0,0 @@
1
- import { ContentId } from "./Content";
2
- import { FolderStub } from "./Stub";
3
- declare enum FolderRefBrand {
4
- }
5
- export type FolderRef = (string & FolderRefBrand) | null;
6
- export interface ParsedFolderRef {
7
- context_id: ContentId;
8
- folder_id: ContentId;
9
- }
10
- export declare class Folder {
11
- static create(label?: string): FolderStub;
12
- static parseFolderRef(ref: FolderRef): ParsedFolderRef;
13
- static makeFolderRef(contextId: ContentId, folderId: ContentId): FolderRef;
14
- static isFolderRef(ref: FolderRef): boolean;
15
- }
16
- export {};
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Folder = void 0;
4
- const repo_1 = require("../../repo");
5
- const ContentKind_1 = require("./ContentKind");
6
- var FolderRefBrand;
7
- (function (FolderRefBrand) {
8
- })(FolderRefBrand || (FolderRefBrand = {}));
9
- class Folder {
10
- static create(label) {
11
- if (typeof (label) === "undefined") {
12
- label = "";
13
- }
14
- const shareSync = repo_1.ShareSyncFactory.get();
15
- const folderId = shareSync.makeContentId();
16
- return {
17
- "kind": ContentKind_1.ContentKind.FOLDER,
18
- "id": folderId,
19
- "label": label
20
- };
21
- }
22
- static parseFolderRef(ref) {
23
- let parts = ref.replace("Folder_", "").split("_");
24
- return { context_id: parts[0], folder_id: parts[1] };
25
- }
26
- static makeFolderRef(contextId, folderId) {
27
- return ("Folder_" + contextId + "_" + folderId);
28
- }
29
- static isFolderRef(ref) {
30
- return ref != null && ref.indexOf("Folder_") === 0;
31
- }
32
- }
33
- exports.Folder = Folder;
@@ -1,54 +0,0 @@
1
- /// <reference path="../../../decs.d.ts" />
2
- import { Doc } from '@shaxpir/sharedb/lib/client';
3
- import { ShareSync } from '../../repo/ShareSync';
4
- import { ArrayView } from './ArrayView';
5
- import { Category } from './Category';
6
- import { Checkpointable } from './Checkpointable';
7
- import { ContentBody, ContentId, ContentMeta } from './Content';
8
- import { RichText, RichTextPayload } from "./RichText";
9
- import { ContentStub } from './Stub';
10
- import { CompactDateTime, MultiTime } from './Time';
11
- export interface RobotLock {
12
- user_id: ContentId;
13
- device_id: ContentId;
14
- at_utc_time: CompactDateTime;
15
- }
16
- export interface Connection {
17
- label: string;
18
- refs: ContentId[];
19
- }
20
- export interface FragmentPayload extends RichTextPayload {
21
- name: string;
22
- category: Category;
23
- book_ids: ContentId[];
24
- gallery: ContentId[];
25
- connections: Connection[];
26
- robot_lock: RobotLock;
27
- }
28
- export interface FragmentBody extends ContentBody {
29
- meta: ContentMeta;
30
- payload: FragmentPayload;
31
- }
32
- export declare class Fragment extends RichText {
33
- private _bookIdsView;
34
- private _connectionsView;
35
- private _galleryView;
36
- constructor(doc: Doc, shouldAcquire: boolean, shareSync: ShareSync);
37
- static create(userId: ContentId, bookId: ContentId, category: Category): Fragment;
38
- get payload(): FragmentPayload;
39
- get name(): string;
40
- setName(value: string, newWordCount: number): void;
41
- get category(): string;
42
- setCategory(value: string): void;
43
- private updateContextStubFeilds;
44
- get bookIds(): ArrayView<ContentId>;
45
- get connections(): ArrayView<Connection>;
46
- updateConnectionLabel(index: number, newLabel: string): void;
47
- getConnectionRefsView(sectionIndex: number): ArrayView<ContentId>;
48
- get gallery(): ArrayView<ContentId>;
49
- get robotLock(): RobotLock;
50
- setRobotLock(value: RobotLock): void;
51
- asStub(): ContentStub;
52
- beforeRestoreTo(checkpoint: Checkpointable, now: MultiTime): Promise<void>;
53
- modelUpdated(): Promise<void>;
54
- }
@@ -1,181 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Fragment = void 0;
4
- const ShareSync_1 = require("../../repo/ShareSync");
5
- const util_1 = require("../../util");
6
- const Operation_1 = require("../markup/Operation");
7
- const ArrayView_1 = require("./ArrayView");
8
- const ContentKind_1 = require("./ContentKind");
9
- const RichText_1 = require("./RichText");
10
- const Time_1 = require("./Time");
11
- const Workspace_1 = require("./Workspace");
12
- class Fragment extends RichText_1.RichText {
13
- constructor(doc, shouldAcquire, shareSync) {
14
- super(doc, shouldAcquire, shareSync);
15
- this._bookIdsView = new ArrayView_1.ArrayView(this, ['payload', 'book_ids']);
16
- this._galleryView = new ArrayView_1.ArrayView(this, ['payload', 'gallery']);
17
- this._connectionsView = new ArrayView_1.ArrayView(this, ['payload', 'connections']);
18
- }
19
- static create(userId, bookId, category) {
20
- const now = Time_1.MultiClock.now();
21
- const shareSync = ShareSync_1.ShareSyncFactory.get();
22
- const fragmentId = shareSync.makeContentId();
23
- return shareSync.createContent({
24
- meta: {
25
- ref: fragmentId,
26
- is_head: true,
27
- kind: ContentKind_1.ContentKind.FRAGMENT,
28
- id: fragmentId,
29
- owner: userId,
30
- created_at: now,
31
- updated_at: now,
32
- checkpoints: []
33
- },
34
- payload: {
35
- name: "",
36
- category: category,
37
- book_ids: (bookId == null ? [] : [bookId]),
38
- gallery: [],
39
- connections: [],
40
- robot_lock: null,
41
- richtext_flavor: RichText_1.RichTextFlavor.quill,
42
- richtext_body: { ops: [] },
43
- word_count: 0
44
- }
45
- });
46
- }
47
- get payload() {
48
- this.checkDisposed("Fragment.payload");
49
- return this.doc.data.payload;
50
- }
51
- get name() {
52
- this.checkDisposed("Fragment.name");
53
- return this.payload.name;
54
- }
55
- setName(value, newWordCount) {
56
- this.checkDisposed("Fragment.setName");
57
- if (this.name != value) {
58
- // Update the name.
59
- const batch = new Operation_1.BatchOperation(this);
60
- batch.editPathText(['payload', 'name'], value);
61
- if (this.wordCount != newWordCount) {
62
- batch.setPathValue(['payload', 'word_count'], newWordCount);
63
- }
64
- batch.commit();
65
- this.updateContextStubFeilds('label', value);
66
- }
67
- }
68
- get category() {
69
- this.checkDisposed("Fragment.category");
70
- return this.payload.category;
71
- }
72
- setCategory(value) {
73
- this.checkDisposed("Fragment.setCategory");
74
- if (this.category != value) {
75
- const batch = new Operation_1.BatchOperation(this);
76
- batch.editPathText(['payload', 'category'], value);
77
- batch.commit();
78
- this.updateContextStubFeilds('category', value);
79
- }
80
- }
81
- updateContextStubFeilds(fieldName, fieldValue) {
82
- const fragment = this;
83
- // Update the name of this fragment if it appears anywhere in the workspace.
84
- const workspaceId = Workspace_1.Workspace.makeWorkspaceId(fragment.meta.owner);
85
- this.shareSync.acquire(ContentKind_1.ContentKind.WORKSPACE, workspaceId).then((workspace) => {
86
- workspace.editStubFieldText(fragment.id, fieldName, fieldValue);
87
- workspace.release();
88
- });
89
- // Update the category of this frgment in the stub arrays of any books that include it.
90
- for (let i = 0, len = fragment.bookIds.length; i < len; i++) {
91
- const bookId = fragment.bookIds.get(i);
92
- this.shareSync.acquire(ContentKind_1.ContentKind.BOOK, bookId).then((book) => {
93
- book.editStubFieldText(fragment.id, fieldName, fieldValue);
94
- book.release();
95
- });
96
- }
97
- }
98
- get bookIds() {
99
- this.checkDisposed("Fragment.bookIds");
100
- return this._bookIdsView;
101
- }
102
- get connections() {
103
- this.checkDisposed("Fragment.connections");
104
- return this._connectionsView;
105
- }
106
- updateConnectionLabel(index, newLabel) {
107
- this.checkDisposed("Fragment.updateConnectionLabel");
108
- let batch = new Operation_1.BatchOperation(this);
109
- batch.editPathText(['payload', 'connections', index, 'label'], newLabel);
110
- batch.commit();
111
- }
112
- getConnectionRefsView(sectionIndex) {
113
- this.checkDisposed("Fragment.getConnectionRefsView");
114
- return new ArrayView_1.ArrayView(this, ['payload', 'connections', sectionIndex, 'refs']);
115
- }
116
- get gallery() {
117
- this.checkDisposed("Fragment.gallery");
118
- return this._galleryView;
119
- }
120
- get robotLock() {
121
- this.checkDisposed("Fragment.robotLock");
122
- return this.payload.robot_lock;
123
- }
124
- setRobotLock(value) {
125
- this.checkDisposed("Fragment.setRobotLock");
126
- if (!util_1.Struct.equals(this.robotLock, value)) {
127
- const batch = new Operation_1.BatchOperation(this);
128
- batch.setPathValue(['payload', 'robot_lock'], value);
129
- batch.commit();
130
- }
131
- }
132
- asStub() {
133
- this.checkDisposed("Fragment.asStub");
134
- // Stubs can also refer to a parent, by ID (which unflattens the stub array into a
135
- // tree in the nav panel). But those parent IDs are only added during drag-and-drop
136
- // sorting, so the original stubs made here never have 'parent' properties.
137
- return {
138
- kind: this.kind,
139
- category: this.category,
140
- ref: this.id,
141
- label: this.name
142
- };
143
- }
144
- async beforeRestoreTo(checkpoint, now) {
145
- this.checkDisposed("Fragment.beforeRestoreTo");
146
- // Call the beforeRestoreTo method on the base class first.
147
- super.beforeRestoreTo(checkpoint, now);
148
- // Restore all embedded concept art
149
- const checkpointTimestamp = checkpoint.createdAt.utc_time;
150
- const gallery = this.gallery;
151
- if (gallery.length > 0) {
152
- for (let i = 0; i < gallery.length; i++) {
153
- const conceptArtId = gallery.get(i);
154
- const conceptArtHead = await this.shareSync.acquire(ContentKind_1.ContentKind.CONCEPT_ART, conceptArtId);
155
- const conceptArtCheckpoint = await conceptArtHead.acquireLatestCheckpointAt(checkpointTimestamp);
156
- // If the HEAD concept-art is already the most recent checkpoint, or if the payload hasn't
157
- // changed since that checkpoint was taken, then there's no need to restore this concept-art.
158
- if (!conceptArtCheckpoint.isHead && !util_1.Struct.equals(conceptArtHead.payload, conceptArtCheckpoint.payload)) {
159
- await conceptArtHead.restoreTo(conceptArtCheckpoint, now);
160
- }
161
- conceptArtHead.release();
162
- conceptArtCheckpoint.release();
163
- }
164
- }
165
- }
166
- async modelUpdated() {
167
- this.checkDisposed("Fragment.modelUpdated");
168
- await super.modelUpdated();
169
- if (this.isHead) {
170
- const shareSync = ShareSync_1.ShareSyncFactory.get();
171
- // After updating this fragment, we need to update any books that contain this fragment.
172
- for (let i = 0, len = this.bookIds.length; i < len; i++) {
173
- const bookId = this.bookIds.get(i);
174
- const book = await shareSync.acquire(ContentKind_1.ContentKind.BOOK, bookId);
175
- book.updateWordCount();
176
- book.release();
177
- }
178
- }
179
- }
180
- }
181
- exports.Fragment = Fragment;
@@ -1,21 +0,0 @@
1
- import { ContentBody, ContentMeta } from "./Content";
2
- import { Definable, DictionaryEntry, Pronouncable } from "./DictionaryEntry";
3
- export interface HanziComponent {
4
- component: string;
5
- meaning: string;
6
- pinyin: string;
7
- }
8
- export interface HanziSense extends Definable, Pronouncable {
9
- phrases: string[];
10
- }
11
- export interface HanziPayload extends DictionaryEntry {
12
- components: HanziComponent[];
13
- component_analysis: string;
14
- radical: string;
15
- radical_analysis: string;
16
- senses: HanziSense[];
17
- }
18
- export interface HanziBody extends ContentBody {
19
- meta: ContentMeta;
20
- payload: HanziPayload;
21
- }
@@ -1,9 +0,0 @@
1
- export interface HighlightRule {
2
- id: string;
3
- enabled: boolean;
4
- kind: string;
5
- text?: string;
6
- color?: string;
7
- lo_color?: string;
8
- hi_color?: string;
9
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,68 +0,0 @@
1
- /// <reference path="../../../decs.d.ts" />
2
- import { Doc } from '@shaxpir/sharedb/lib/client';
3
- import { ShareSync } from '../../repo/ShareSync';
4
- import { LegacyContentKind, LegacyLocator } from '../legacy';
5
- import { Content, ContentId, ContentMeta, ContentRef } from "./Content";
6
- import { ContentKind } from './ContentKind';
7
- import { MultiTime } from './Time';
8
- export declare enum MigrationStatus {
9
- MIGRATED = "MIGRATED",
10
- CANT_MIGRATE = "CANT_MIGRATE",
11
- REPAIRED = "REPAIRED",
12
- CANT_REPAIR = "CANT_REPAIR",
13
- SKIPPED = "SKIPPED",
14
- UPDATED = "UPDATED"
15
- }
16
- export interface MigrationBody {
17
- meta: ContentMeta;
18
- payload: MigrationPayload;
19
- }
20
- export interface MigrationEntry {
21
- at: MultiTime;
22
- status: string;
23
- message?: string;
24
- models: MigrationModel[];
25
- }
26
- export interface MigrationModel {
27
- legacy_kind?: LegacyContentKind;
28
- legacy_locator?: LegacyLocator;
29
- modern_kind?: ContentKind;
30
- modern_id?: ContentId;
31
- modern_ref?: ContentRef;
32
- }
33
- export interface MigrationPayload {
34
- start: MultiTime;
35
- end: MultiTime;
36
- duration_minutes: number;
37
- is_primary: boolean;
38
- is_complete: boolean;
39
- device_id: string;
40
- legacy_snapshot_count: number;
41
- repaired_count: number;
42
- cant_repair_count: number;
43
- migrated_count: number;
44
- cant_migrate_count: number;
45
- updated_count: number;
46
- skipped_count: number;
47
- migration_entries: MigrationEntry[];
48
- }
49
- export declare class Migration extends Content {
50
- constructor(doc: Doc, shouldAcquire: boolean, shareSync: ShareSync);
51
- static makeMigrationId(userId: ContentId): ContentId;
52
- static create(userId: ContentId, isPrimary: boolean, deviceId: ContentId): Migration;
53
- get payload(): MigrationPayload;
54
- get durationMinutes(): number;
55
- get isPrimary(): boolean;
56
- get isComplete(): boolean;
57
- setIsComplete(value: boolean): void;
58
- get legacySnapshotCount(): number;
59
- setLegacySnapshotCount(value: number): void;
60
- get repairedCount(): number;
61
- get cantRepairCount(): number;
62
- get migratedCount(): number;
63
- get cantMigrateCount(): number;
64
- get updatedCount(): number;
65
- get skippedCount(): number;
66
- addMigrationEntry(entry: MigrationEntry): void;
67
- private touch;
68
- }