@manuscripts/article-editor 3.1.48-LEAN-3970-v0.0 → 3.1.48-datasource-cleanup.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 (120) hide show
  1. package/dist/cjs/EditorApp.js +15 -7
  2. package/dist/cjs/EditorApp.js.map +1 -1
  3. package/dist/cjs/api/Api.js +137 -0
  4. package/dist/cjs/api/Api.js.map +1 -0
  5. package/dist/cjs/{postgres-data/PsSource.js → api/ApiSource.js} +17 -32
  6. package/dist/cjs/api/ApiSource.js.map +1 -0
  7. package/dist/cjs/api/StepsExchanger.js +95 -0
  8. package/dist/cjs/api/StepsExchanger.js.map +1 -0
  9. package/dist/cjs/{postgres-data → api}/buildData.js +29 -7
  10. package/dist/cjs/api/buildData.js.map +1 -0
  11. package/dist/cjs/{postgres-data → api}/buildUtilities.js +5 -6
  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 +33 -57
  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 +3 -14
  23. package/dist/cjs/hooks/use-create-editor.js.map +1 -1
  24. package/dist/cjs/hooks/use-handle-snapshot.js +2 -2
  25. package/dist/cjs/hooks/use-handle-snapshot.js.map +1 -1
  26. package/dist/cjs/{quarterback/getDocWithoutTrackContent.js → lib/doc.js} +7 -8
  27. package/dist/cjs/lib/doc.js.map +1 -0
  28. package/dist/cjs/store/DataSourceStrategy.js +3 -11
  29. package/dist/cjs/store/DataSourceStrategy.js.map +1 -1
  30. package/dist/cjs/store/Store.js.map +1 -1
  31. package/dist/es/EditorApp.js +15 -7
  32. package/dist/es/EditorApp.js.map +1 -1
  33. package/dist/es/api/Api.js +131 -0
  34. package/dist/es/api/Api.js.map +1 -0
  35. package/dist/es/{postgres-data/PsSource.js → api/ApiSource.js} +15 -31
  36. package/dist/es/api/ApiSource.js.map +1 -0
  37. package/dist/es/api/StepsExchanger.js +90 -0
  38. package/dist/es/api/StepsExchanger.js.map +1 -0
  39. package/dist/es/{postgres-data → api}/buildData.js +29 -7
  40. package/dist/es/api/buildData.js.map +1 -0
  41. package/dist/es/{postgres-data → api}/buildUtilities.js +5 -6
  42. package/dist/es/api/buildUtilities.js.map +1 -0
  43. package/dist/es/api/savingUtilities.js.map +1 -0
  44. package/dist/{types/lib/api/index.d.ts → es/api/types.js} +3 -2
  45. package/dist/es/api/types.js.map +1 -0
  46. package/dist/es/components/inspector/SnapshotsDropdown.js +35 -59
  47. package/dist/es/components/inspector/SnapshotsDropdown.js.map +1 -1
  48. package/dist/es/components/projects/ManuscriptPageContainer.js +0 -1
  49. package/dist/es/components/projects/ManuscriptPageContainer.js.map +1 -1
  50. package/dist/es/hooks/use-connect-editor.js +1 -1
  51. package/dist/es/hooks/use-connect-editor.js.map +1 -1
  52. package/dist/es/hooks/use-create-editor.js +3 -14
  53. package/dist/es/hooks/use-create-editor.js.map +1 -1
  54. package/dist/es/hooks/use-handle-snapshot.js +1 -1
  55. package/dist/es/hooks/use-handle-snapshot.js.map +1 -1
  56. package/dist/es/{quarterback/getDocWithoutTrackContent.js → lib/doc.js} +6 -6
  57. package/dist/es/lib/doc.js.map +1 -0
  58. package/dist/es/store/DataSourceStrategy.js +3 -11
  59. package/dist/es/store/DataSourceStrategy.js.map +1 -1
  60. package/dist/es/store/Store.js.map +1 -1
  61. package/dist/types/{postgres-data → api}/Api.d.ts +13 -5
  62. package/dist/types/{postgres-data/PsSource.d.ts → api/ApiSource.d.ts} +3 -4
  63. package/dist/types/{quarterback/QuarterbackStepsExchanger.d.ts → api/StepsExchanger.d.ts} +18 -21
  64. package/dist/types/api/buildData.d.ts +3 -0
  65. package/dist/types/{postgres-data → api}/buildUtilities.d.ts +1 -1
  66. package/dist/types/{quarterback/api/loadDoc.d.ts → api/types.d.ts} +23 -6
  67. package/dist/types/lib/doc.d.ts +17 -0
  68. package/dist/types/store/DataSourceStrategy.d.ts +2 -5
  69. package/dist/types/store/Store.d.ts +4 -5
  70. package/package.json +2 -3
  71. package/dist/cjs/lib/api/collaboration.js +0 -25
  72. package/dist/cjs/lib/api/collaboration.js.map +0 -1
  73. package/dist/cjs/lib/api/index.js +0 -29
  74. package/dist/cjs/lib/api/index.js.map +0 -1
  75. package/dist/cjs/postgres-data/Api.js +0 -83
  76. package/dist/cjs/postgres-data/Api.js.map +0 -1
  77. package/dist/cjs/postgres-data/PsSource.js.map +0 -1
  78. package/dist/cjs/postgres-data/buildData.js.map +0 -1
  79. package/dist/cjs/postgres-data/buildUtilities.js.map +0 -1
  80. package/dist/cjs/postgres-data/savingUtilities.js.map +0 -1
  81. package/dist/cjs/quarterback/QuarterbackStepsExchanger.js +0 -145
  82. package/dist/cjs/quarterback/QuarterbackStepsExchanger.js.map +0 -1
  83. package/dist/cjs/quarterback/api/document.js +0 -43
  84. package/dist/cjs/quarterback/api/document.js.map +0 -1
  85. package/dist/cjs/quarterback/api/loadDoc.js +0 -108
  86. package/dist/cjs/quarterback/api/loadDoc.js.map +0 -1
  87. package/dist/cjs/quarterback/api/methods.js +0 -147
  88. package/dist/cjs/quarterback/api/methods.js.map +0 -1
  89. package/dist/cjs/quarterback/getDocWithoutTrackContent.js.map +0 -1
  90. package/dist/cjs/quarterback/types.js +0 -3
  91. package/dist/cjs/quarterback/types.js.map +0 -1
  92. package/dist/es/lib/api/collaboration.js +0 -18
  93. package/dist/es/lib/api/collaboration.js.map +0 -1
  94. package/dist/es/lib/api/index.js.map +0 -1
  95. package/dist/es/postgres-data/Api.js +0 -77
  96. package/dist/es/postgres-data/Api.js.map +0 -1
  97. package/dist/es/postgres-data/PsSource.js.map +0 -1
  98. package/dist/es/postgres-data/buildData.js.map +0 -1
  99. package/dist/es/postgres-data/buildUtilities.js.map +0 -1
  100. package/dist/es/postgres-data/savingUtilities.js.map +0 -1
  101. package/dist/es/quarterback/QuarterbackStepsExchanger.js +0 -118
  102. package/dist/es/quarterback/QuarterbackStepsExchanger.js.map +0 -1
  103. package/dist/es/quarterback/api/document.js +0 -32
  104. package/dist/es/quarterback/api/document.js.map +0 -1
  105. package/dist/es/quarterback/api/loadDoc.js +0 -81
  106. package/dist/es/quarterback/api/loadDoc.js.map +0 -1
  107. package/dist/es/quarterback/api/methods.js +0 -137
  108. package/dist/es/quarterback/api/methods.js.map +0 -1
  109. package/dist/es/quarterback/getDocWithoutTrackContent.js.map +0 -1
  110. package/dist/es/quarterback/types.js +0 -2
  111. package/dist/es/quarterback/types.js.map +0 -1
  112. package/dist/types/lib/api/collaboration.d.ts +0 -17
  113. package/dist/types/postgres-data/buildData.d.ts +0 -3
  114. package/dist/types/quarterback/api/document.d.ts +0 -20
  115. package/dist/types/quarterback/api/methods.d.ts +0 -38
  116. package/dist/types/quarterback/getDocWithoutTrackContent.d.ts +0 -3
  117. package/dist/types/quarterback/types.d.ts +0 -74
  118. /package/dist/cjs/{postgres-data → api}/savingUtilities.js +0 -0
  119. /package/dist/es/{postgres-data → api}/savingUtilities.js +0 -0
  120. /package/dist/types/{postgres-data → api}/savingUtilities.d.ts +0 -0
@@ -28,12 +28,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const react_1 = __importStar(require("react"));
30
30
  const styled_components_1 = __importDefault(require("styled-components"));
31
+ const ApiSource_1 = require("./api/ApiSource");
31
32
  const Page_1 = require("./components/Page");
32
33
  const ManuscriptPageContainer_1 = __importDefault(require("./components/projects/ManuscriptPageContainer"));
33
34
  const ManuscriptPlaceholder_1 = require("./components/projects/ManuscriptPlaceholder");
34
35
  const user_1 = require("./lib/user");
35
- const PsSource_1 = __importDefault(require("./postgres-data/PsSource"));
36
36
  const store_1 = require("./store");
37
+ const TokenData_1 = require("./store/TokenData");
37
38
  const Wrapper = styled_components_1.default.div `
38
39
  display: flex;
39
40
  box-sizing: border-box;
@@ -62,12 +63,19 @@ const EditorApp = ({ manuscriptID, projectID, permittedActions, fileManagement,
62
63
  return;
63
64
  }
64
65
  loadedRef.current = true;
65
- (0, store_1.createStore)([
66
- new store_1.BasicSource(fileManagement, projectID, manuscriptID, files, permittedActions, userID || '', authToken || ''),
67
- new PsSource_1.default(files),
68
- ])
69
- .then((store) => {
70
- setStore(store);
66
+ const props = new store_1.BasicSource({
67
+ fileManagement,
68
+ projectID,
69
+ manuscriptID,
70
+ files,
71
+ permittedActions,
72
+ userID: userID || '',
73
+ tokenData: new TokenData_1.TokenData(),
74
+ });
75
+ const api = new ApiSource_1.ApiSource(authToken);
76
+ (0, store_1.createStore)([props, api])
77
+ .then((s) => {
78
+ setStore(s);
71
79
  })
72
80
  .catch((e) => {
73
81
  console.error(e);
@@ -1 +1 @@
1
- {"version":3,"file":"EditorApp.js","sourceRoot":"","sources":["../../src/EditorApp.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,+CAA4E;AAC5E,0EAAsC;AAEtC,4CAAwC;AACxC,4GAAmF;AACnF,uFAAmF;AACnF,qCAA6C;AAC7C,wEAA+C;AAC/C,mCAMgB;AAuBhB,MAAM,OAAO,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;;;;CAQzB,CAAA;AAED,MAAM,kBAAkB,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;;;CAOpC,CAAA;AAED,MAAM,SAAS,GAA6B,CAAC,EAC3C,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAA,uBAAgB,GAAE,CAAA;IAEjC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAAgB,CAAA;IAElD,MAAM,SAAS,GAAG,IAAA,cAAM,EAAU,KAAK,CAAC,CAAA;IACxC,MAAM,kBAAkB,GAAG,IAAA,cAAM,EAAU,KAAK,CAAC,CAAA;IAEjD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,8DAA8D;QAC9D,IAAI,SAAS,CAAC,OAAO,EAAE;YACrB,OAAM;SACP;QACD,SAAS,CAAC,OAAO,GAAG,IAAI,CAAA;QACxB,IAAA,mBAAW,EAAC;YACV,IAAI,mBAAW,CACb,cAAc,EACd,SAAS,EACT,YAAY,EACZ,KAAK,EACL,gBAAgB,EAChB,MAAM,IAAI,EAAE,EACZ,SAAS,IAAI,EAAE,CAChB;YACD,IAAI,kBAAQ,CAAC,KAAK,CAAC;SACpB,CAAC;aACC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,KAAK,EAAE,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QACD,uDAAuD;IACzD,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;IAE7B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,IAAI,kBAAkB,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE;YACrD,OAAM;SACP;QACD,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAA;QACjC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7C,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG;YACvB,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE;YAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAc,CAAC;SACnD,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IAErB,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,8BAAC,4BAAoB,IAAC,KAAK,EAAE,KAAK;QAChC,8BAAC,WAAI;YACH,8BAAC,OAAO;gBACN,8BAAC,iCAAuB,OAAG,CACnB,CACL,CACc,CACxB,CAAC,CAAC,CAAC,CACF,8BAAC,kBAAkB;QACjB,8BAAC,6CAAqB,OAAG,CACN,CACtB,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"EditorApp.js","sourceRoot":"","sources":["../../src/EditorApp.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
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(authToken) {
10
+ this.get = async (url) => {
11
+ try {
12
+ const result = await this.instance.get(url, {
13
+ headers: {
14
+ 'Content-Type': 'application/json;charset=UTF-8',
15
+ },
16
+ });
17
+ return result.data;
18
+ }
19
+ catch (e) {
20
+ console.log(e);
21
+ return undefined;
22
+ }
23
+ };
24
+ this.post = async (path, data) => {
25
+ return this.instance
26
+ .post(path, data)
27
+ .then((result) => result.data)
28
+ .catch((e) => {
29
+ const status = e.response?.status;
30
+ if (!status || status >= 500) {
31
+ console.log(e);
32
+ }
33
+ throw e;
34
+ });
35
+ };
36
+ this.delete = (url) => this.instance.delete(url);
37
+ this.options = (url) => this.instance.options(url);
38
+ this.put = (path, data) => this.instance.put(path, data);
39
+ this.getTransformVersion = () => this.get('/doc/version').then((d) => d?.transformVersion || '');
40
+ this.getUser = () => this.get('user');
41
+ this.getManuscript = (projectID, manuscriptID) => this.get(`project/${projectID}/manuscript/${manuscriptID}`);
42
+ this.getSectionCategories = () => this.get('/config?id=section-categories');
43
+ this.getCSLLocale = (lang) => lang !== 'en-US' ? this.get(`/csl/locales?id=${lang}`) : undefined;
44
+ this.getTemplate = (id) => id ? this.get(`/templates?id=${id}`) : undefined;
45
+ this.getBundle = (template) => template?.bundle
46
+ ? this.get(`/bundles?id=${template.bundle}`)
47
+ : undefined;
48
+ this.getCSLStyle = (bundle) => bundle?.csl?._id
49
+ ? this.get(`/csl/styles?id=${bundle.csl._id}`)
50
+ : undefined;
51
+ this.getUserProfiles = (containerID) => this.get(`/project/${containerID}/userProfiles`);
52
+ this.saveProject = (projectId, models) => {
53
+ return this.put(`project/${projectId}`, { data: models });
54
+ };
55
+ this.createProject = (projectId, title) => this.post(`project/${projectId}`, { title });
56
+ this.getSnapshot = (snapshotID) => this.get(`snapshot/${snapshotID}`);
57
+ this.createSnapshot = (projectID, manuscriptID) => {
58
+ return this.post(`snapshot/${projectID}/manuscript/${manuscriptID}`, {
59
+ docID: manuscriptID,
60
+ name: new Date().toLocaleString('sv'),
61
+ });
62
+ };
63
+ this.getDocument = (projectID, manuscriptID) => this.get(`doc/${projectID}/manuscript/${manuscriptID}`);
64
+ this.sendSteps = (projectID, manuscriptID, data) => this.post(`doc/${projectID}/manuscript/${manuscriptID}/steps`, {
65
+ ...data,
66
+ steps: data.steps.map((s) => s.toJSON()),
67
+ }).catch((e) => {
68
+ const error = e.response?.status === 409 ? 'conflict' : e.message;
69
+ return {
70
+ error: error,
71
+ };
72
+ });
73
+ this.getStepsSince = (projectID, manuscriptID, version) => this.get(`doc/${projectID}/manuscript/${manuscriptID}/version/${version}`);
74
+ this.listenToSteps = (projectID, manuscriptID, listener) => {
75
+ const config = (0, config_1.getConfig)();
76
+ const base = config.api.url.replace('http', 'ws');
77
+ const url = `${base}/doc/${projectID}/manuscript/${manuscriptID}/listen`;
78
+ let ws;
79
+ const onOpen = () => {
80
+ console.log('Established WebSocket connection');
81
+ };
82
+ const onMessage = (event) => {
83
+ const data = JSON.parse(event.data);
84
+ if (typeof data.version !== 'undefined' &&
85
+ data.steps &&
86
+ Array.isArray(data.steps) &&
87
+ data.clientIDs) {
88
+ listener(data.version, data.steps, data.clientIDs);
89
+ }
90
+ };
91
+ const onClose = (event) => {
92
+ console.warn('WebSocket connection closed, reconnecting:', event.code, event.reason);
93
+ rejoin();
94
+ };
95
+ const onError = (event) => {
96
+ console.error('WebSocket error, reconnecting:', event);
97
+ rejoin();
98
+ };
99
+ const close = () => {
100
+ if (!ws) {
101
+ return;
102
+ }
103
+ ws.removeEventListener('open', onOpen);
104
+ ws.removeEventListener('message', onMessage);
105
+ ws.removeEventListener('close', onClose);
106
+ ws.removeEventListener('error', onError);
107
+ ws.close();
108
+ };
109
+ const rejoin = () => {
110
+ close();
111
+ setTimeout(join, 1500);
112
+ };
113
+ const join = () => {
114
+ try {
115
+ ws = new WebSocket(url);
116
+ ws.addEventListener('open', onOpen);
117
+ ws.addEventListener('message', onMessage);
118
+ ws.addEventListener('close', onClose);
119
+ ws.addEventListener('error', onError);
120
+ }
121
+ catch (e) {
122
+ console.log(e);
123
+ rejoin();
124
+ }
125
+ };
126
+ window.addEventListener('beforeunload', close);
127
+ join();
128
+ };
129
+ const config = (0, config_1.getConfig)();
130
+ this.instance = axios_1.default.create({
131
+ baseURL: config.api.url,
132
+ headers: { ...config.api.headers, Authorization: 'Bearer ' + authToken },
133
+ });
134
+ }
135
+ }
136
+ exports.default = Api;
137
+ //# sourceMappingURL=Api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Api.js","sourceRoot":"","sources":["../../../src/api/Api.ts"],"names":[],"mappings":"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"}
@@ -14,39 +14,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- const loadDoc_1 = require("../quarterback/api/loadDoc");
17
+ exports.ApiSource = void 0;
18
+ const transform_1 = require("@manuscripts/transform");
18
19
  const Api_1 = __importDefault(require("./Api"));
19
20
  const buildData_1 = require("./buildData");
20
21
  const buildUtilities_1 = require("./buildUtilities");
21
- class PsSource {
22
- constructor(files) {
22
+ class ApiSource {
23
+ constructor(authToken) {
23
24
  this.updateState = (state) => {
24
25
  console.error(new Error('Store not yet mounted').stack);
25
26
  };
26
27
  this.build = async (state, next, setState) => {
27
- if (state.userID && state.authToken) {
28
- this.api.setToken(state.authToken);
29
- }
30
28
  const projectID = state.projectID;
31
29
  const manuscriptID = state.manuscriptID;
32
- if (state.projectID && state.manuscriptID && state.authToken) {
33
- const res = await (0, loadDoc_1.loadDoc)(state.manuscriptID, state.projectID, state.authToken, state.doc);
34
- if (res?.doc && res.version >= 0) {
35
- this.data = {
36
- ...this.data,
37
- doc: res.doc,
38
- initialDocVersion: res.version,
39
- snapshots: res.snapshots,
40
- snapshotsMap: new Map(),
41
- };
42
- }
43
- }
44
- if (manuscriptID && projectID && this.data.doc) {
45
- const data = await (0, buildData_1.buildData)(projectID, manuscriptID, this.data.doc, this.api);
46
- this.data = {
47
- ...this.data,
48
- ...data,
49
- };
30
+ if (manuscriptID && projectID) {
31
+ await this.checkTransformVersion();
32
+ this.data = await (0, buildData_1.buildData)(projectID, manuscriptID, setState, this.api);
50
33
  this.utilities = (0, buildUtilities_1.buildUtilities)(projectID, manuscriptID, () => this.data, setState, this.api);
51
34
  }
52
35
  next({ ...state, ...this.data, ...this.utilities });
@@ -57,13 +40,15 @@ class PsSource {
57
40
  this.updateStore = (setState) => {
58
41
  this.updateState = setState;
59
42
  };
60
- this.api = new Api_1.default();
61
- this.files = files;
62
- // import api
63
- // get user and all the data
64
- // build and provide methods such as saveModel, saveManuscript etc. (see ModelManager in couch-data)
65
- // conform with the store
43
+ this.checkTransformVersion = async () => {
44
+ const fe = (0, transform_1.getVersion)();
45
+ const api = await this.api.getTransformVersion();
46
+ if (fe !== api) {
47
+ console.warn(`manuscripts-transform version mismatch. FE: ${fe}, api: ${api}`);
48
+ }
49
+ };
50
+ this.api = new Api_1.default(authToken);
66
51
  }
67
52
  }
68
- exports.default = PsSource;
69
- //# sourceMappingURL=PsSource.js.map
53
+ exports.ApiSource = ApiSource;
54
+ //# sourceMappingURL=ApiSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiSource.js","sourceRoot":"","sources":["../../../src/api/ApiSource.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;AAEH,sDAA0E;AAI1E,gDAAuB;AACvB,2CAAuC;AACvC,qDAAiD;AAEjD,MAAa,SAAS;IAKpB,YAAY,SAAiB;QAI7B,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,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;YACjC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;YACvC,IAAI,YAAY,IAAI,SAAS,EAAE;gBAC7B,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;gBAClC,IAAI,CAAC,IAAI,GAAG,MAAM,IAAA,qBAAS,EAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBACxE,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;QACD,0BAAqB,GAAG,KAAK,IAAI,EAAE;YACjC,MAAM,EAAE,GAAG,IAAA,sBAAmB,GAAE,CAAA;YAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAA;YAChD,IAAI,EAAE,KAAK,GAAG,EAAE;gBACd,OAAO,CAAC,IAAI,CACV,+CAA+C,EAAE,UAAU,GAAG,EAAE,CACjE,CAAA;aACF;QACH,CAAC,CAAA;QArCC,IAAI,CAAC,GAAG,GAAG,IAAI,aAAG,CAAC,SAAS,CAAC,CAAA;IAC/B,CAAC;CAqCF;AA5CD,8BA4CC"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StepsExchanger = exports.ObservableBoolean = 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) 2022 Atypon Systems LLC. All Rights Reserved.
14
+ */
15
+ const body_editor_1 = require("@manuscripts/body-editor");
16
+ const transform_1 = require("@manuscripts/transform");
17
+ const prosemirror_transform_1 = require("prosemirror-transform");
18
+ const savingUtilities_1 = require("./savingUtilities");
19
+ const MAX_ATTEMPTS = 20;
20
+ const THROTTLING_INTERVAL = 1200;
21
+ class ObservableBoolean {
22
+ constructor() {
23
+ this.value = false;
24
+ this.subs = [];
25
+ }
26
+ setValue(value) {
27
+ this.value = value;
28
+ this.subs.forEach((s) => s(value));
29
+ }
30
+ onChange(sub) {
31
+ this.subs.push(sub);
32
+ }
33
+ }
34
+ exports.ObservableBoolean = ObservableBoolean;
35
+ class StepsExchanger extends body_editor_1.CollabProvider {
36
+ constructor(projectID, manuscriptID, currentVersion, api) {
37
+ super();
38
+ this.attempt = 0;
39
+ this.projectID = projectID;
40
+ this.manuscriptID = manuscriptID;
41
+ this.currentVersion = currentVersion;
42
+ this.isThrottling = new ObservableBoolean();
43
+ this.debounce = (0, savingUtilities_1.saveWithDebounce)();
44
+ this.api = api;
45
+ }
46
+ async sendSteps(version, steps, clientID, flush = false) {
47
+ this.currentVersion = version;
48
+ this.flushImmediately = this.debounce(async () => {
49
+ const response = await this.api.sendSteps(this.projectID, this.manuscriptID, {
50
+ steps: steps,
51
+ version,
52
+ clientID,
53
+ });
54
+ if (response.error === 'conflict' && this.attempt < MAX_ATTEMPTS) {
55
+ console.warn('Retrying');
56
+ this.newStepsListener();
57
+ this.attempt++;
58
+ }
59
+ else if (response.error) {
60
+ console.error('Failed to send steps', response.error);
61
+ }
62
+ else {
63
+ this.attempt = 0;
64
+ }
65
+ }, THROTTLING_INTERVAL, flush, () => this.isThrottling.setValue(false));
66
+ if (!flush) {
67
+ this.isThrottling.setValue(true);
68
+ }
69
+ return Promise.resolve();
70
+ }
71
+ async receiveSteps(version, steps, clientIDs) {
72
+ if (steps.length) {
73
+ //TODO send steps to listener
74
+ this.newStepsListener();
75
+ }
76
+ }
77
+ flush() {
78
+ this.flushImmediately && this.flushImmediately();
79
+ }
80
+ onNewSteps(listener) {
81
+ this.newStepsListener = listener;
82
+ }
83
+ async stepsSince(version) {
84
+ const response = await this.api.getStepsSince(this.projectID, this.manuscriptID, version);
85
+ if (response) {
86
+ return {
87
+ steps: response.steps.map((s) => prosemirror_transform_1.Step.fromJSON(transform_1.schema, s)),
88
+ clientIDs: response.clientIDs,
89
+ version: response.version,
90
+ };
91
+ }
92
+ }
93
+ }
94
+ exports.StepsExchanger = StepsExchanger;
95
+ //# sourceMappingURL=StepsExchanger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepsExchanger.js","sourceRoot":"","sources":["../../../src/api/StepsExchanger.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,9 @@ exports.buildData = void 0;
13
13
  * All portions of the code written by Atypon Systems LLC are Copyright (c) 2019 Atypon Systems LLC. All Rights Reserved.
14
14
  */
15
15
  const json_schema_1 = require("@manuscripts/json-schema");
16
+ const transform_1 = require("@manuscripts/transform");
16
17
  const roles_1 = require("../lib/roles");
17
- const TokenData_1 = require("../store/TokenData");
18
+ const StepsExchanger_1 = require("./StepsExchanger");
18
19
  const getIdModels = async (api, projectID, manuscriptID) => {
19
20
  const models = await api.getManuscript(projectID, manuscriptID);
20
21
  let project;
@@ -32,13 +33,24 @@ const getIdModels = async (api, projectID, manuscriptID) => {
32
33
  }
33
34
  return [project, manuscript];
34
35
  };
35
- const getManuscriptData = async (api, prototype) => {
36
+ const getDocumentData = async (projectID, manuscriptID, api) => {
37
+ const response = await api.getDocument(projectID, manuscriptID);
38
+ if (!response) {
39
+ throw new Error('Document not found');
40
+ }
41
+ return {
42
+ doc: transform_1.schema.nodeFromJSON(response.doc),
43
+ version: response.version,
44
+ snapshots: response.snapshots,
45
+ };
46
+ };
47
+ const getManuscriptData = async (templateID, api) => {
36
48
  const data = {};
37
49
  const [sectionCategories, cslLocale, template] = await Promise.all([
38
50
  api.getSectionCategories(),
39
51
  // TODO:: config this!
40
52
  api.getCSLLocale('en-US'),
41
- api.getTemplate(prototype),
53
+ api.getTemplate(templateID),
42
54
  ]);
43
55
  const bundle = await api.getBundle(template);
44
56
  data.sectionCategories = sectionCategories || [];
@@ -61,24 +73,34 @@ const getUserData = async (projectID, user, api) => {
61
73
  collaboratorsById: profilesById,
62
74
  };
63
75
  };
64
- const buildData = async (projectID, manuscriptID, doc, api) => {
76
+ const buildData = async (projectID, manuscriptID, updateState, api) => {
65
77
  const user = await api.getUser();
66
78
  if (!user) {
67
79
  return {};
68
80
  }
69
- const manuscriptNode = doc;
70
- const state = await getManuscriptData(api, manuscriptNode.attrs.prototype);
81
+ const doc = await getDocumentData(projectID, manuscriptID, api);
82
+ const state = await getManuscriptData(doc.doc.attrs.prototype, api);
71
83
  const [project, manuscript] = await getIdModels(api, projectID, manuscriptID);
72
84
  const role = project ? (0, roles_1.getUserRole)(project, user.userID) : null;
73
85
  const users = await getUserData(projectID, user, api);
86
+ const stepsExchanger = new StepsExchanger_1.StepsExchanger(projectID, manuscriptID, doc.version, api);
87
+ stepsExchanger.isThrottling.onChange((value) => {
88
+ updateState({
89
+ preventUnload: value,
90
+ });
91
+ });
92
+ api.listenToSteps(projectID, manuscriptID, (version, steps, clientIDs) => stepsExchanger.receiveSteps(version, steps, clientIDs));
93
+ const beforeUnload = () => stepsExchanger.flush();
74
94
  return {
75
95
  user,
76
96
  userRole: role,
77
97
  ...users,
78
98
  ...state,
99
+ ...doc,
100
+ stepsExchanger,
79
101
  project,
80
102
  manuscript,
81
- tokenData: new TokenData_1.TokenData(),
103
+ beforeUnload,
82
104
  };
83
105
  };
84
106
  exports.buildData = buildData;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildData.js","sourceRoot":"","sources":["../../../src/api/buildData.ts"],"names":[],"mappings":"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"}
@@ -73,15 +73,13 @@ const buildUtilities = (projectID, manuscriptID, getState, updateState, api) =>
73
73
  const createSnapshot = async () => {
74
74
  const state = getState();
75
75
  const snapshots = state.snapshots;
76
- const snapshotsMap = state.snapshotsMap;
77
- if (!snapshots || !snapshotsMap) {
78
- throw new Error('Unable to create snapshot due to incomplete data');
76
+ if (!snapshots) {
77
+ throw new Error('Missing snapshots');
79
78
  }
80
- const data = await api.createSnapshot(projectID, manuscriptID);
81
- const { snapshot, ...label } = data.snapshot;
79
+ const response = await api.createSnapshot(projectID, manuscriptID);
80
+ const { snapshot, ...label } = response.snapshot;
82
81
  updateState({
83
82
  snapshots: [...snapshots, label],
84
- snapshotsMap: snapshotsMap.set(label.id, data.snapshot),
85
83
  });
86
84
  };
87
85
  const refreshProject = async () => {
@@ -107,6 +105,7 @@ const buildUtilities = (projectID, manuscriptID, getState, updateState, api) =>
107
105
  saveDoc,
108
106
  createSnapshot,
109
107
  refreshProject,
108
+ getSnapshot: api.getSnapshot,
110
109
  };
111
110
  };
112
111
  exports.buildUtilities = buildUtilities;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildUtilities.js","sourceRoot":"","sources":["../../../src/api/buildUtilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"savingUtilities.js","sourceRoot":"","sources":["../../../src/api/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,3 +1,4 @@
1
+ "use strict";
1
2
  /*!
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.
3
4
  *
@@ -7,7 +8,7 @@
7
8
  *
8
9
  * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
9
10
  *
10
- * All portions of the code written by Atypon Systems LLC are Copyright (c) 2019 Atypon Systems LLC. All Rights Reserved.
11
+ * All portions of the code written by Atypon Systems LLC are Copyright (c) 2022 Atypon Systems LLC. All Rights Reserved.
11
12
  */
12
- export * from './collaboration';
13
- //# sourceMappingURL=index.js.map
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG"}