@manuscripts/article-editor 3.2.13-LEAN-2165.0 → 3.2.14-LEAN-4021.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 (118) hide show
  1. package/dist/cjs/EditorApp.js +22 -11
  2. package/dist/cjs/EditorApp.js.map +1 -1
  3. package/dist/cjs/api/Api.js +168 -0
  4. package/dist/cjs/api/Api.js.map +1 -0
  5. package/dist/cjs/{postgres-data/PsSource.js → api/ApiSource.js} +17 -36
  6. package/dist/cjs/api/ApiSource.js.map +1 -0
  7. package/dist/cjs/api/StepsExchanger.js +99 -0
  8. package/dist/cjs/api/StepsExchanger.js.map +1 -0
  9. package/dist/cjs/api/buildData.js +66 -0
  10. package/dist/cjs/api/buildData.js.map +1 -0
  11. package/dist/cjs/{postgres-data → api}/buildUtilities.js +6 -12
  12. package/dist/cjs/api/buildUtilities.js.map +1 -0
  13. package/dist/cjs/api/savingUtilities.js.map +1 -0
  14. package/dist/{es/lib/api/index.js → cjs/api/types.js} +4 -3
  15. package/dist/cjs/api/types.js.map +1 -0
  16. package/dist/cjs/components/inspector/SnapshotsDropdown.js +54 -58
  17. package/dist/cjs/components/inspector/SnapshotsDropdown.js.map +1 -1
  18. package/dist/cjs/components/projects/ManuscriptPageContainer.js +0 -1
  19. package/dist/cjs/components/projects/ManuscriptPageContainer.js.map +1 -1
  20. package/dist/cjs/hooks/use-connect-editor.js +1 -1
  21. package/dist/cjs/hooks/use-connect-editor.js.map +1 -1
  22. package/dist/cjs/hooks/use-create-editor.js +19 -14
  23. package/dist/cjs/hooks/use-create-editor.js.map +1 -1
  24. package/dist/cjs/{quarterback/getDocWithoutTrackContent.js → lib/doc.js} +7 -8
  25. package/dist/cjs/lib/doc.js.map +1 -0
  26. package/dist/cjs/store/DataSourceStrategy.js +3 -11
  27. package/dist/cjs/store/DataSourceStrategy.js.map +1 -1
  28. package/dist/cjs/store/Store.js.map +1 -1
  29. package/dist/es/EditorApp.js +23 -12
  30. package/dist/es/EditorApp.js.map +1 -1
  31. package/dist/es/api/Api.js +160 -0
  32. package/dist/es/api/Api.js.map +1 -0
  33. package/dist/es/{postgres-data/PsSource.js → api/ApiSource.js} +15 -32
  34. package/dist/es/api/ApiSource.js.map +1 -0
  35. package/dist/es/api/StepsExchanger.js +94 -0
  36. package/dist/es/api/StepsExchanger.js.map +1 -0
  37. package/dist/es/api/buildData.js +62 -0
  38. package/dist/es/api/buildData.js.map +1 -0
  39. package/dist/es/{postgres-data → api}/buildUtilities.js +6 -12
  40. package/dist/es/api/buildUtilities.js.map +1 -0
  41. package/dist/es/api/savingUtilities.js.map +1 -0
  42. package/dist/{types/lib/api/index.d.ts → es/api/types.js} +3 -2
  43. package/dist/es/api/types.js.map +1 -0
  44. package/dist/es/components/inspector/SnapshotsDropdown.js +32 -59
  45. package/dist/es/components/inspector/SnapshotsDropdown.js.map +1 -1
  46. package/dist/es/components/projects/ManuscriptPageContainer.js +0 -1
  47. package/dist/es/components/projects/ManuscriptPageContainer.js.map +1 -1
  48. package/dist/es/hooks/use-connect-editor.js +1 -1
  49. package/dist/es/hooks/use-connect-editor.js.map +1 -1
  50. package/dist/es/hooks/use-create-editor.js +19 -14
  51. package/dist/es/hooks/use-create-editor.js.map +1 -1
  52. package/dist/es/{quarterback/getDocWithoutTrackContent.js → lib/doc.js} +6 -6
  53. package/dist/es/lib/doc.js.map +1 -0
  54. package/dist/es/store/DataSourceStrategy.js +3 -11
  55. package/dist/es/store/DataSourceStrategy.js.map +1 -1
  56. package/dist/es/store/Store.js.map +1 -1
  57. package/dist/types/{postgres-data → api}/Api.d.ts +17 -6
  58. package/dist/types/{postgres-data/PsSource.d.ts → api/ApiSource.d.ts} +4 -5
  59. package/dist/types/{quarterback/QuarterbackStepsExchanger.d.ts → api/StepsExchanger.d.ts} +19 -21
  60. package/dist/types/api/buildData.d.ts +2 -0
  61. package/dist/types/{postgres-data → api}/buildUtilities.d.ts +1 -1
  62. package/dist/types/{quarterback/api/loadDoc.d.ts → api/types.d.ts} +23 -6
  63. package/dist/types/lib/doc.d.ts +17 -0
  64. package/dist/types/store/DataSourceStrategy.d.ts +2 -5
  65. package/dist/types/store/Store.d.ts +5 -13
  66. package/package.json +3 -4
  67. package/dist/cjs/lib/api/collaboration.js +0 -25
  68. package/dist/cjs/lib/api/collaboration.js.map +0 -1
  69. package/dist/cjs/lib/api/index.js +0 -29
  70. package/dist/cjs/lib/api/index.js.map +0 -1
  71. package/dist/cjs/postgres-data/Api.js +0 -83
  72. package/dist/cjs/postgres-data/Api.js.map +0 -1
  73. package/dist/cjs/postgres-data/PsSource.js.map +0 -1
  74. package/dist/cjs/postgres-data/buildData.js +0 -85
  75. package/dist/cjs/postgres-data/buildData.js.map +0 -1
  76. package/dist/cjs/postgres-data/buildUtilities.js.map +0 -1
  77. package/dist/cjs/postgres-data/savingUtilities.js.map +0 -1
  78. package/dist/cjs/quarterback/QuarterbackStepsExchanger.js +0 -145
  79. package/dist/cjs/quarterback/QuarterbackStepsExchanger.js.map +0 -1
  80. package/dist/cjs/quarterback/api/document.js +0 -43
  81. package/dist/cjs/quarterback/api/document.js.map +0 -1
  82. package/dist/cjs/quarterback/api/loadDoc.js +0 -108
  83. package/dist/cjs/quarterback/api/loadDoc.js.map +0 -1
  84. package/dist/cjs/quarterback/api/methods.js +0 -147
  85. package/dist/cjs/quarterback/api/methods.js.map +0 -1
  86. package/dist/cjs/quarterback/getDocWithoutTrackContent.js.map +0 -1
  87. package/dist/cjs/quarterback/types.js +0 -3
  88. package/dist/cjs/quarterback/types.js.map +0 -1
  89. package/dist/es/lib/api/collaboration.js +0 -18
  90. package/dist/es/lib/api/collaboration.js.map +0 -1
  91. package/dist/es/lib/api/index.js.map +0 -1
  92. package/dist/es/postgres-data/Api.js +0 -77
  93. package/dist/es/postgres-data/Api.js.map +0 -1
  94. package/dist/es/postgres-data/PsSource.js.map +0 -1
  95. package/dist/es/postgres-data/buildData.js +0 -81
  96. package/dist/es/postgres-data/buildData.js.map +0 -1
  97. package/dist/es/postgres-data/buildUtilities.js.map +0 -1
  98. package/dist/es/postgres-data/savingUtilities.js.map +0 -1
  99. package/dist/es/quarterback/QuarterbackStepsExchanger.js +0 -118
  100. package/dist/es/quarterback/QuarterbackStepsExchanger.js.map +0 -1
  101. package/dist/es/quarterback/api/document.js +0 -32
  102. package/dist/es/quarterback/api/document.js.map +0 -1
  103. package/dist/es/quarterback/api/loadDoc.js +0 -81
  104. package/dist/es/quarterback/api/loadDoc.js.map +0 -1
  105. package/dist/es/quarterback/api/methods.js +0 -137
  106. package/dist/es/quarterback/api/methods.js.map +0 -1
  107. package/dist/es/quarterback/getDocWithoutTrackContent.js.map +0 -1
  108. package/dist/es/quarterback/types.js +0 -2
  109. package/dist/es/quarterback/types.js.map +0 -1
  110. package/dist/types/lib/api/collaboration.d.ts +0 -17
  111. package/dist/types/postgres-data/buildData.d.ts +0 -3
  112. package/dist/types/quarterback/api/document.d.ts +0 -20
  113. package/dist/types/quarterback/api/methods.d.ts +0 -38
  114. package/dist/types/quarterback/getDocWithoutTrackContent.d.ts +0 -3
  115. package/dist/types/quarterback/types.d.ts +0 -74
  116. /package/dist/cjs/{postgres-data → api}/savingUtilities.js +0 -0
  117. /package/dist/es/{postgres-data → api}/savingUtilities.js +0 -0
  118. /package/dist/types/{postgres-data → api}/savingUtilities.d.ts +0 -0
@@ -1,83 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const axios_1 = __importDefault(require("axios"));
7
- const config_1 = require("../config");
8
- class Api {
9
- constructor() {
10
- this.setToken = (token) => {
11
- const config = (0, config_1.getConfig)();
12
- this.instance = axios_1.default.create({
13
- baseURL: config.api.url,
14
- headers: { ...config.api.headers, Authorization: 'Bearer ' + token },
15
- });
16
- };
17
- this.get = async (url) => {
18
- try {
19
- const result = await this.instance.get(url, {
20
- headers: {
21
- 'Content-Type': 'application/json;charset=UTF-8',
22
- },
23
- });
24
- return result.data;
25
- }
26
- catch (e) {
27
- console.log(e);
28
- return undefined;
29
- }
30
- };
31
- this.post = async (path, data) => {
32
- return this.instance
33
- .post(path, data)
34
- .then((result) => result.data)
35
- .catch((e) => {
36
- console.log(e);
37
- throw e.data?.error?.message || 'Request failed';
38
- });
39
- };
40
- this.delete = (url) => {
41
- return this.instance.delete(url);
42
- };
43
- this.options = (url) => {
44
- return this.instance.options(url);
45
- };
46
- this.put = (path, data) => {
47
- return this.instance.put(path, data);
48
- };
49
- this.getUser = () => {
50
- return this.get(`user`);
51
- };
52
- this.getManuscript = (containerID, manuscriptID) => this.get(`project/${containerID}/manuscript/${manuscriptID}`);
53
- this.getSectionCategories = () => this.get('/config?id=section-categories');
54
- this.getCSLLocale = (lang) => lang !== 'en-US' ? this.get(`/csl/locales?id=${lang}`) : undefined;
55
- this.getTemplate = (id) => id ? this.get(`/templates?id=${id}`) : undefined;
56
- this.getBundle = (template) => template?.bundle
57
- ? this.get(`/bundles?id=${template.bundle}`)
58
- : undefined;
59
- this.getCSLStyle = (bundle) => bundle?.csl?._id
60
- ? this.get(`/csl/styles?id=${bundle.csl._id}`)
61
- : undefined;
62
- this.getUserProfiles = (containerID) => this.get(`/project/${containerID}/userProfiles`);
63
- this.saveProject = (projectId, models) => {
64
- return this.put(`project/${projectId}`, { data: models });
65
- };
66
- this.createProject = (projectId, title) => {
67
- return this.post(`project/${projectId}`, { title });
68
- };
69
- this.createSnapshot = (projectID, manuscriptID) => {
70
- return this.post(`snapshot/${projectID}/manuscript/${manuscriptID}`, {
71
- docID: manuscriptID,
72
- name: new Date().toLocaleString('sv'),
73
- });
74
- };
75
- const config = (0, config_1.getConfig)();
76
- this.instance = axios_1.default.create({
77
- baseURL: config.api.url,
78
- headers: config.api.headers,
79
- });
80
- }
81
- }
82
- exports.default = Api;
83
- //# sourceMappingURL=Api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Api.js","sourceRoot":"","sources":["../../../src/postgres-data/Api.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PsSource.js","sourceRoot":"","sources":["../../../src/postgres-data/PsSource.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;AAIH,wDAAoD;AAIpD,gDAAuB;AACvB,2CAAuC;AACvC,qDAAiD;AAEjD,MAAqB,QAAQ;IAM3B,YAAY,KAAuB;QASnC,gBAAW,GAAgB,CAAC,KAAY,EAAE,EAAE;YAC1C,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAA;QACzD,CAAC,CAAA;QAED,UAAK,GAAc,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE;gBACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;aACnC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;YACjC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;YAEvC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,EAAE;gBAC5D,MAAM,GAAG,GAAG,MAAM,IAAA,iBAAO,EACvB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,GAAG,CACV,CAAA;gBACD,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE;oBAChC,IAAI,CAAC,IAAI,GAAG;wBACV,GAAG,IAAI,CAAC,IAAI;wBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,iBAAiB,EAAE,GAAG,CAAC,OAAO;wBAC9B,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,YAAY,EAAE,IAAI,GAAG,EAA8B;qBACpD,CAAA;iBACF;aACF;YAED,IAAI,YAAY,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC9C,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAS,EAC1B,SAAS,EACT,YAAY,EACZ,IAAI,CAAC,IAAI,CAAC,GAAG,EACb,IAAI,CAAC,GAAG,CACT,CAAA;gBACD,IAAI,CAAC,IAAI,GAAG;oBACV,GAAG,IAAI,CAAC,IAAI;oBACZ,GAAG,IAAI;iBACR,CAAA;gBACD,IAAI,CAAC,SAAS,GAAG,IAAA,+BAAc,EAC7B,SAAS,EACT,YAAY,EACZ,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EACf,QAAQ,EACR,IAAI,CAAC,GAAG,CACT,CAAA;aACF;YACD,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QACrD,CAAC,CAAA;QACD,gBAAW,GAAG,CAAC,KAAY,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA,CAAC,uCAAuC;QAC3D,CAAC,CAAA;QACD,gBAAW,GAAG,CAAC,QAAqB,EAAE,EAAE;YACtC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAA;QAC7B,CAAC,CAAA;QA/DC,IAAI,CAAC,GAAG,GAAG,IAAI,aAAG,EAAE,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,aAAa;QACb,4BAA4B;QAC5B,oGAAoG;QACpG,yBAAyB;IAC3B,CAAC;CA0DF;AAvED,2BAuEC"}
@@ -1,85 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildData = void 0;
4
- /*!
5
- * The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
6
- *
7
- * Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
8
- *
9
- * The Original Code is manuscripts-frontend.
10
- *
11
- * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
12
- *
13
- * All portions of the code written by Atypon Systems LLC are Copyright (c) 2019 Atypon Systems LLC. All Rights Reserved.
14
- */
15
- const json_schema_1 = require("@manuscripts/json-schema");
16
- const roles_1 = require("../lib/roles");
17
- const TokenData_1 = require("../store/TokenData");
18
- const getIdModels = async (api, projectID, manuscriptID) => {
19
- const models = await api.getManuscript(projectID, manuscriptID);
20
- let project;
21
- let manuscript;
22
- if (!models) {
23
- throw new Error('Models are wrong.');
24
- }
25
- for (const model of models) {
26
- if (model.objectType === json_schema_1.ObjectTypes.Project) {
27
- project = model;
28
- }
29
- if (model.objectType === json_schema_1.ObjectTypes.Manuscript) {
30
- manuscript = model;
31
- }
32
- }
33
- return [project, manuscript];
34
- };
35
- const getManuscriptData = async (api, prototype) => {
36
- const data = {};
37
- const [sectionCategories, cslLocale, template] = await Promise.all([
38
- api.getSectionCategories(),
39
- // TODO:: config this!
40
- api.getCSLLocale('en-US'),
41
- api.getTemplate(prototype),
42
- ]);
43
- const bundle = await api.getBundle(template);
44
- data.sectionCategories = sectionCategories || [];
45
- data.cslStyle = await api.getCSLStyle(bundle);
46
- data.cslLocale = cslLocale;
47
- return data;
48
- };
49
- const getUserData = async (projectID, user, api) => {
50
- const profilesById = new Map();
51
- profilesById.set(user._id, user);
52
- const profiles = await api.getUserProfiles(projectID);
53
- if (profiles) {
54
- for (const profile of profiles) {
55
- if (profile) {
56
- profilesById.set(profile._id, profile);
57
- }
58
- }
59
- }
60
- return {
61
- collaboratorsById: profilesById,
62
- };
63
- };
64
- const buildData = async (projectID, manuscriptID, doc, api) => {
65
- const user = await api.getUser();
66
- if (!user) {
67
- return {};
68
- }
69
- const manuscriptNode = doc;
70
- const state = await getManuscriptData(api, manuscriptNode.attrs.prototype);
71
- const [project, manuscript] = await getIdModels(api, projectID, manuscriptID);
72
- const role = project ? (0, roles_1.getUserRole)(project, user.userID) : null;
73
- const users = await getUserData(projectID, user, api);
74
- return {
75
- user,
76
- userRole: role,
77
- ...users,
78
- ...state,
79
- project,
80
- manuscript,
81
- tokenData: new TokenData_1.TokenData(),
82
- };
83
- };
84
- exports.buildData = buildData;
85
- //# sourceMappingURL=buildData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildData.js","sourceRoot":"","sources":["../../../src/postgres-data/buildData.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildUtilities.js","sourceRoot":"","sources":["../../../src/postgres-data/buildUtilities.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,0DAA+D;AAE/D,wCAA0C;AAInC,MAAM,cAAc,GAAG,CAC5B,SAAiB,EACjB,YAAoB,EACpB,QAA8B,EAC9B,WAA4C,EAC5C,GAAQ,EACQ,EAAE;IAClB,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;QACjC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;QACvC,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;SACpE;QACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAC9D,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC5C,WAAW,CAAC;YACV,SAAS,EAAE,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC;YAChC,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;SACxD,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,MAAM,EAAE;YACX,OAAM;SACP;QACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAC/D,IAAI,CAAC,MAAM,EAAE;YACX,OAAM;SACP;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,yBAAW,CAAC,OAAO,CAC5C,CAAC,CAAC,CAAY,CAAA;QACf,IAAI,CAAC,OAAO,EAAE;YACZ,OAAM;SACP;QACD,WAAW,CAAC;YACV,OAAO;YACP,QAAQ,EAAE,IAAA,mBAAW,EAAC,OAAO,EAAE,MAAM,CAAC;SACvC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO;QACL,cAAc;QACd,cAAc;KACf,CAAA;AACH,CAAC,CAAA;AAhDY,QAAA,cAAc,kBAgD1B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"savingUtilities.js","sourceRoot":"","sources":["../../../src/postgres-data/savingUtilities.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,iCAA8B;AAEvB,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,IAAI,OAAe,CAAA;IAEnB,OAAO,CACL,EAAa,EACb,QAAQ,GAAG,IAAI,EACf,KAAK,GAAG,KAAK,EACb,MAAmB,EACnB,EAAE;QACF,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,EAAE,EAAE,CAAA;YACJ,MAAM,IAAI,MAAM,EAAE,CAAA;QACpB,CAAC,CAAA;QACD,IAAI,KAAK,EAAE;YACT,MAAM,EAAE,CAAA;YACR,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,OAAM;SACP;QAED,YAAY,CAAC,OAAO,CAAC,CAAA;QACrB,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YAC/B,MAAM,EAAE,CAAA;QACV,CAAC,EAAE,QAAQ,CAAC,CAAA;QAEZ,OAAO,GAAG,EAAE;YACV,MAAM,EAAE,CAAA;YACR,YAAY,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC,CAAA;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AA7BY,QAAA,gBAAgB,oBA6B5B;AAEM,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,SAAS,GAAG,IAAA,cAAM,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,OAAO,GAAG,IAAA,cAAM,GAAU,CAAA;IAEhC,OAAO,CAAC,EAAa,EAAE,QAAQ,GAAG,IAAI,EAAE,EAAE;QACxC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,SAAS,CAAC,OAAO,EAAE,CAAA;YACnB,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;gBACvB,OAAO,IAAI,CAAA;YACb,CAAC,CAAA;YACD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACvC,SAAS,CAAC,OAAO,EAAE,CAAA;gBACnB,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBACpC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAA;YACrB,CAAC,EAAE,QAAQ,CAAC,CAAA;SACb;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAlBY,QAAA,iBAAiB,qBAkB7B"}
@@ -1,145 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.stepsExchanger = void 0;
27
- /*!
28
- * The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
29
- *
30
- * Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
31
- *
32
- * The Original Code is manuscripts-frontend.
33
- *
34
- * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
35
- *
36
- * All portions of the code written by Atypon Systems LLC are Copyright (c) 2022 Atypon Systems LLC. All Rights Reserved.
37
- */
38
- const body_editor_1 = require("@manuscripts/body-editor");
39
- const transform_1 = require("@manuscripts/transform");
40
- const prosemirror_transform_1 = require("prosemirror-transform");
41
- const savingUtilities_1 = require("../postgres-data/savingUtilities");
42
- const docApi = __importStar(require("./api/document"));
43
- class QuarterbackStepsExchanger extends body_editor_1.CollabProvider {
44
- constructor(docId, projectId, startingVersion, applySteps, getStepsSince, listenToSteps, authToken, throttlingControl) {
45
- if (QuarterbackStepsExchanger._instance) {
46
- return QuarterbackStepsExchanger._instance;
47
- }
48
- super();
49
- this.reconcileAttempts = 0;
50
- this.reconcileAttemptsMax = 20;
51
- QuarterbackStepsExchanger._instance = this;
52
- this.applySteps = applySteps;
53
- this.docId = docId;
54
- this.projectId = projectId;
55
- this.throttlingControl = throttlingControl;
56
- this.currentVersion = startingVersion;
57
- this.debounce = (0, savingUtilities_1.saveWithDebounce)();
58
- this.getStepsSince = getStepsSince;
59
- this.sendSteps = this.sendSteps.bind(this);
60
- this.throttlingControl(false, this.flushOnExit.bind(this));
61
- listenToSteps(projectId, docId, (version, jsonSteps, clientIDs) => {
62
- if (!jsonSteps) {
63
- return;
64
- }
65
- const steps = this.hydrateSteps(jsonSteps);
66
- if (steps.length) {
67
- this.newStepsListener();
68
- }
69
- });
70
- }
71
- destroy() {
72
- QuarterbackStepsExchanger._instance = null;
73
- }
74
- hydrateSteps(jsonSteps) {
75
- return jsonSteps.map((s) => prosemirror_transform_1.Step.fromJSON(transform_1.schema, s));
76
- }
77
- async sendSteps(version, steps, clientID, flush = false) {
78
- // Apply and accumulate new steps
79
- const stepsJSON = [];
80
- steps.forEach((step) => {
81
- stepsJSON.push(step.toJSON());
82
- });
83
- this.currentVersion = version;
84
- this.flushImmediate = this.debounce(async () => {
85
- const result = await this.applySteps(this.projectId, this.docId, {
86
- steps: stepsJSON,
87
- version,
88
- clientID,
89
- });
90
- if (result &&
91
- 'err' in result &&
92
- 'code' in result &&
93
- result.code === 409 &&
94
- this.reconcileAttempts < this.reconcileAttemptsMax) {
95
- // debugger
96
- console.warn('Attempting Reconciliation');
97
- this.newStepsListener();
98
- this.reconcileAttempts++;
99
- }
100
- else {
101
- this.reconcileAttempts = 0;
102
- }
103
- }, 1200, flush, () => {
104
- this.throttlingControl(false);
105
- });
106
- if (!flush) {
107
- this.throttlingControl(true);
108
- }
109
- return Promise.resolve();
110
- }
111
- flushOnExit() {
112
- this.flushImmediate && this.flushImmediate();
113
- }
114
- onNewSteps(listener) {
115
- this.newStepsListener = listener;
116
- }
117
- async stepsSince(version) {
118
- // retrieve the steps since the number of version given
119
- const res = await this.getStepsSince(this.projectId, this.docId, version);
120
- if (res) {
121
- return {
122
- steps: this.hydrateSteps(res.steps),
123
- clientIDs: res.clientIDs,
124
- version: res.version,
125
- };
126
- }
127
- return;
128
- }
129
- }
130
- const stepsExchanger = (docId, projectId, lastVersion, authToken, throttlingControl, isAuthed = true) => {
131
- if (!isAuthed) {
132
- return;
133
- }
134
- const applySteps = async (projectId, docId, payload) => docApi.applySteps(projectId, docId, authToken, payload);
135
- const getStepsSince = async (projectId, docId, version) => {
136
- const resp = await docApi.stepsSince(projectId, docId, version, authToken);
137
- if ('data' in resp) {
138
- return resp.data;
139
- }
140
- };
141
- return new QuarterbackStepsExchanger(docId, projectId, lastVersion, applySteps, getStepsSince, docApi.listenStepUpdates, authToken, throttlingControl);
142
- };
143
- exports.stepsExchanger = stepsExchanger;
144
- exports.default = QuarterbackStepsExchanger;
145
- //# sourceMappingURL=QuarterbackStepsExchanger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QuarterbackStepsExchanger.js","sourceRoot":"","sources":["../../../src/quarterback/QuarterbackStepsExchanger.ts"],"names":[],"mappings":"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"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- /*!
3
- * The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
4
- *
5
- * Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
6
- *
7
- * The Original Code is manuscripts-frontend.
8
- *
9
- * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
10
- *
11
- * All portions of the code written by Atypon Systems LLC are Copyright (c) 2022 Atypon Systems LLC. All Rights Reserved.
12
- */
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.listenStepUpdates = exports.stepsSince = exports.applySteps = exports.deleteDocument = exports.updateDocument = exports.getTransformVersion = exports.createDocument = exports.getDocument = void 0;
15
- const methods_1 = require("./methods");
16
- const getDocument = (projectID, manuscriptID, authToken) => (0, methods_1.get)(`doc/${projectID}/manuscript/${manuscriptID}`, authToken, 'Fetching document failed');
17
- exports.getDocument = getDocument;
18
- const createDocument = (payload, authToken) => (0, methods_1.post)(`doc/${payload.project_model_id}/manuscript/${payload.manuscript_model_id}`, authToken, payload, 'Creating document failed');
19
- exports.createDocument = createDocument;
20
- const getTransformVersion = (authToken) => (0, methods_1.get)('doc/version', authToken, 'Fetching transform version failed');
21
- exports.getTransformVersion = getTransformVersion;
22
- const updateDocument = (projectID, manuscriptID, authToken, payload) => (0, methods_1.put)(`doc/${projectID}/manuscript/${manuscriptID}`, authToken, payload, 'Updating document failed');
23
- exports.updateDocument = updateDocument;
24
- const deleteDocument = (projectID, manuscriptID, authToken) => (0, methods_1.del)(`doc/${projectID}/manuscript/${manuscriptID}`, authToken, 'Deleting document failed');
25
- exports.deleteDocument = deleteDocument;
26
- const applySteps = (projectId, docId, authToken, payload) => (0, methods_1.post)(`doc/${projectId}/manuscript/${docId}/steps`, authToken, payload, 'Creating document failed');
27
- exports.applySteps = applySteps;
28
- const stepsSince = (projectId, docId, version, authToken) => (0, methods_1.get)(`doc/${projectId}/manuscript/${docId}/version/${version}`, authToken, `Fetching steps since version ${version}`);
29
- exports.stepsSince = stepsSince;
30
- const listenStepUpdates = (projectID, manuscriptID, dataListener) => {
31
- const listener = (event) => {
32
- const data = JSON.parse(event.data);
33
- if (typeof data.version != 'undefined' &&
34
- data.steps &&
35
- Array.isArray(data.steps) &&
36
- data.clientIDs) {
37
- dataListener(data.version, data.steps, data.clientIDs);
38
- }
39
- };
40
- (0, methods_1.listen)(`doc/${projectID}/manuscript/${manuscriptID}/listen`, listener);
41
- };
42
- exports.listenStepUpdates = listenStepUpdates;
43
- //# sourceMappingURL=document.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../src/quarterback/api/document.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAWH,uCAAuD;AAEhD,MAAM,WAAW,GAAG,CACzB,SAAiB,EACjB,YAAoB,EACpB,SAAiB,EACjB,EAAE,CACF,IAAA,aAAG,EACD,OAAO,SAAS,eAAe,YAAY,EAAE,EAC7C,SAAS,EACT,0BAA0B,CAC3B,CAAA;AATU,QAAA,WAAW,eASrB;AAEI,MAAM,cAAc,GAAG,CAAC,OAA0B,EAAE,SAAiB,EAAE,EAAE,CAC9E,IAAA,cAAI,EACF,OAAO,OAAO,CAAC,gBAAgB,eAAe,OAAO,CAAC,mBAAmB,EAAE,EAC3E,SAAS,EACT,OAAO,EACP,0BAA0B,CAC3B,CAAA;AANU,QAAA,cAAc,kBAMxB;AAEI,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAE,EAAE,CACvD,IAAA,aAAG,EACD,aAAa,EACb,SAAS,EACT,mCAAmC,CACpC,CAAA;AALU,QAAA,mBAAmB,uBAK7B;AAEI,MAAM,cAAc,GAAG,CAC5B,SAAiB,EACjB,YAAoB,EACpB,SAAiB,EACjB,OAA+B,EAC/B,EAAE,CACF,IAAA,aAAG,EACD,OAAO,SAAS,eAAe,YAAY,EAAE,EAC7C,SAAS,EACT,OAAO,EACP,0BAA0B,CAC3B,CAAA;AAXU,QAAA,cAAc,kBAWxB;AAEI,MAAM,cAAc,GAAG,CAC5B,SAAiB,EACjB,YAAoB,EACpB,SAAiB,EACjB,EAAE,CACF,IAAA,aAAG,EACD,OAAO,SAAS,eAAe,YAAY,EAAE,EAC7C,SAAS,EACT,0BAA0B,CAC3B,CAAA;AATU,QAAA,cAAc,kBASxB;AAEI,MAAM,UAAU,GAAG,CACxB,SAAiB,EACjB,KAAa,EACb,SAAiB,EACjB,OAAqB,EACrB,EAAE,CACF,IAAA,cAAI,EACF,OAAO,SAAS,eAAe,KAAK,QAAQ,EAC5C,SAAS,EACT,OAAO,EACP,0BAA0B,CAC3B,CAAA;AAXU,QAAA,UAAU,cAWpB;AAEI,MAAM,UAAU,GAAG,CACxB,SAAiB,EACjB,KAAa,EACb,OAAe,EACf,SAAiB,EACjB,EAAE,CACF,IAAA,aAAG,EACD,OAAO,SAAS,eAAe,KAAK,YAAY,OAAO,EAAE,EACzD,SAAS,EACT,gCAAgC,OAAO,EAAE,CAC1C,CAAA;AAVU,QAAA,UAAU,cAUpB;AAEI,MAAM,iBAAiB,GAAG,CAC/B,SAAiB,EACjB,YAAoB,EACpB,YAA8E,EAC9E,EAAE;IACF,MAAM,QAAQ,GAAG,CAAC,KAAmB,EAAE,EAAE;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACnC,IACE,OAAO,IAAI,CAAC,OAAO,IAAI,WAAW;YAClC,IAAI,CAAC,KAAK;YACV,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,SAAS,EACd;YACA,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;SACvD;IACH,CAAC,CAAA;IAED,IAAA,gBAAM,EAAC,OAAO,SAAS,eAAe,YAAY,SAAS,EAAE,QAAQ,CAAC,CAAA;AACxE,CAAC,CAAA;AAlBY,QAAA,iBAAiB,qBAkB7B"}
@@ -1,108 +0,0 @@
1
- "use strict";
2
- /*!
3
- * The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
4
- *
5
- * Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
6
- *
7
- * The Original Code is manuscripts-frontend.
8
- *
9
- * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
10
- *
11
- * All portions of the code written by Atypon Systems LLC are Copyright (c) 2022 Atypon Systems LLC. All Rights Reserved.
12
- */
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.loadDoc = void 0;
38
- const transform_1 = require("@manuscripts/transform");
39
- const document_1 = require("./document");
40
- const docApi = __importStar(require("./document"));
41
- async function loadDoc(manuscriptID, projectID, authToken, existingDoc) {
42
- const resp = await docApi.getTransformVersion(authToken);
43
- if ('data' in resp && resp.data.transformVersion !== (0, transform_1.getVersion)()) {
44
- console.warn(`Warning! Manuscripts-transform (Frontend: ${(0, transform_1.getVersion)()}) version is different on manuscripts-api (${resp.data.transformVersion})`);
45
- }
46
- const found = await docApi.getDocument(projectID, manuscriptID, authToken);
47
- let doc;
48
- let version = 0;
49
- let snapshots = [];
50
- if ('data' in found) {
51
- let empty = true;
52
- for (const _ in found.data.doc) {
53
- empty = false;
54
- break;
55
- }
56
- if (empty) {
57
- if (!existingDoc) {
58
- throw new Error('Unable to produce valid doc as neither model based verions nor history have a valid version');
59
- }
60
- await docApi.updateDocument(projectID, manuscriptID, authToken, {
61
- doc: existingDoc.toJSON(),
62
- schema_version: (0, transform_1.getVersion)(),
63
- });
64
- }
65
- snapshots = found.data.snapshots;
66
- doc = found.data.doc;
67
- version = found.data.version;
68
- }
69
- else if ('err' in found && found.code === 404) {
70
- // Create an empty doc that will be replaced with whatever document is currently being edited
71
- const res = await docApi.createDocument({
72
- manuscript_model_id: manuscriptID,
73
- project_model_id: projectID,
74
- doc: {},
75
- schema_version: (0, transform_1.getVersion)(),
76
- }, authToken);
77
- if ('data' in res) {
78
- doc = res.data.doc;
79
- version = res.data.version;
80
- snapshots = res.data.snapshots;
81
- }
82
- if ('err' in res) {
83
- console.error('Unable to create new document: ' + res.err);
84
- }
85
- const update = await (0, document_1.updateDocument)(projectID, manuscriptID, authToken, {
86
- doc: existingDoc?.toJSON(),
87
- schema_version: (0, transform_1.getVersion)(),
88
- });
89
- if ('err' in update) {
90
- console.error('Unable to create new document: ' + update.err);
91
- }
92
- else {
93
- const found = await docApi.getDocument(projectID, manuscriptID, authToken);
94
- if ('data' in found && found.data.doc && found.data.version >= 0) {
95
- doc = found.data.doc;
96
- version = found.data.version;
97
- }
98
- }
99
- }
100
- if (doc !== null &&
101
- typeof doc === 'object' &&
102
- Object.keys(doc).length !== 0) {
103
- return { doc: transform_1.schema.nodeFromJSON(doc), version, snapshots };
104
- }
105
- return undefined;
106
- }
107
- exports.loadDoc = loadDoc;
108
- //# sourceMappingURL=loadDoc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loadDoc.js","sourceRoot":"","sources":["../../../../src/quarterback/api/loadDoc.ts"],"names":[],"mappings":"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"}