@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,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
- }