@leapdev/app-platform 0.1.0-beta.4 → 0.1.0-beta.6

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 (142) hide show
  1. package/package.json +15 -15
  2. package/src/index.d.ts +25 -0
  3. package/src/index.js +42 -0
  4. package/src/index.js.map +1 -0
  5. package/src/lib/app-platform.d.ts +37 -0
  6. package/src/lib/app-platform.js +231 -0
  7. package/src/lib/app-platform.js.map +1 -0
  8. package/src/lib/environment/environment.d.ts +37 -0
  9. package/src/lib/environment/environment.dictionary.d.ts +4 -0
  10. package/src/lib/environment/environment.dictionary.js +30 -0
  11. package/src/lib/environment/environment.dictionary.js.map +1 -0
  12. package/src/lib/environment/environment.js +17 -0
  13. package/src/lib/environment/environment.js.map +1 -0
  14. package/src/lib/environment/{index.ts → index.d.ts} +2 -2
  15. package/src/lib/environment/index.js +9 -0
  16. package/src/lib/environment/index.js.map +1 -0
  17. package/src/lib/environment/leap/env.dev.au.config.d.ts +32 -0
  18. package/src/lib/environment/leap/env.dev.au.config.js +36 -0
  19. package/src/lib/environment/leap/env.dev.au.config.js.map +1 -0
  20. package/src/lib/environment/leap/env.live.au.config.d.ts +32 -0
  21. package/src/lib/environment/leap/env.live.au.config.js +36 -0
  22. package/src/lib/environment/leap/env.live.au.config.js.map +1 -0
  23. package/src/lib/environment/leap/env.live.ca.config.d.ts +32 -0
  24. package/src/lib/environment/leap/env.live.ca.config.js +36 -0
  25. package/src/lib/environment/leap/env.live.ca.config.js.map +1 -0
  26. package/src/lib/environment/leap/env.live.nz.config.d.ts +32 -0
  27. package/src/lib/environment/leap/env.live.nz.config.js +36 -0
  28. package/src/lib/environment/leap/env.live.nz.config.js.map +1 -0
  29. package/src/lib/environment/leap/env.live.uk.config.d.ts +32 -0
  30. package/src/lib/environment/leap/env.live.uk.config.js +36 -0
  31. package/src/lib/environment/leap/env.live.uk.config.js.map +1 -0
  32. package/src/lib/environment/leap/env.live.us.config.d.ts +32 -0
  33. package/src/lib/environment/leap/env.live.us.config.js +36 -0
  34. package/src/lib/environment/leap/env.live.us.config.js.map +1 -0
  35. package/src/lib/environment/leap/env.liveb.au.config.d.ts +32 -0
  36. package/src/lib/environment/leap/env.liveb.au.config.js +36 -0
  37. package/src/lib/environment/leap/env.liveb.au.config.js.map +1 -0
  38. package/src/lib/environment/leap/env.test.au.config.d.ts +32 -0
  39. package/src/lib/environment/leap/env.test.au.config.js +36 -0
  40. package/src/lib/environment/leap/env.test.au.config.js.map +1 -0
  41. package/src/lib/environment/leap/env.test.ca.config.d.ts +32 -0
  42. package/src/lib/environment/leap/env.test.ca.config.js +36 -0
  43. package/src/lib/environment/leap/env.test.ca.config.js.map +1 -0
  44. package/src/lib/environment/leap/env.test.nz.config.d.ts +32 -0
  45. package/src/lib/environment/leap/env.test.nz.config.js +36 -0
  46. package/src/lib/environment/leap/env.test.nz.config.js.map +1 -0
  47. package/src/lib/environment/leap/env.test.uk.config.d.ts +32 -0
  48. package/src/lib/environment/leap/env.test.uk.config.js +36 -0
  49. package/src/lib/environment/leap/env.test.uk.config.js.map +1 -0
  50. package/src/lib/environment/leap/env.test.us.config.d.ts +32 -0
  51. package/src/lib/environment/leap/env.test.us.config.js +36 -0
  52. package/src/lib/environment/leap/env.test.us.config.js.map +1 -0
  53. package/src/lib/functions/helpers.d.ts +5 -0
  54. package/src/lib/functions/helpers.js +95 -0
  55. package/src/lib/functions/helpers.js.map +1 -0
  56. package/src/lib/functions/xml.d.ts +2 -0
  57. package/src/lib/functions/xml.js +41 -0
  58. package/src/lib/functions/xml.js.map +1 -0
  59. package/src/lib/models/calc-api.model.d.ts +57 -0
  60. package/src/lib/models/calc-api.model.js +39 -0
  61. package/src/lib/models/calc-api.model.js.map +1 -0
  62. package/src/lib/models/constants/index.d.ts +28 -0
  63. package/src/lib/models/constants/index.js +32 -0
  64. package/src/lib/models/constants/index.js.map +1 -0
  65. package/src/lib/models/{index.ts → index.d.ts} +1 -1
  66. package/src/lib/models/index.js +5 -0
  67. package/src/lib/models/index.js.map +1 -0
  68. package/src/lib/models/leap-events.model.d.ts +56 -0
  69. package/src/lib/models/leap-events.model.js +71 -0
  70. package/src/lib/models/leap-events.model.js.map +1 -0
  71. package/src/lib/models/leap.model.d.ts +65 -0
  72. package/src/lib/models/leap.model.js +29 -0
  73. package/src/lib/models/leap.model.js.map +1 -0
  74. package/src/lib/models/signalr.model.d.ts +21 -0
  75. package/src/lib/models/signalr.model.js +3 -0
  76. package/src/lib/models/signalr.model.js.map +1 -0
  77. package/src/lib/services/auth/auth.service.d.ts +13 -0
  78. package/src/lib/services/auth/auth.service.js +185 -0
  79. package/src/lib/services/auth/auth.service.js.map +1 -0
  80. package/src/lib/services/calc-api/calc-api-service.interface.d.ts +4 -0
  81. package/src/lib/services/calc-api/calc-api-service.interface.js +3 -0
  82. package/src/lib/services/calc-api/calc-api-service.interface.js.map +1 -0
  83. package/src/lib/services/calc-api/calc-word.service.d.ts +10 -0
  84. package/src/lib/services/calc-api/calc-word.service.js +63 -0
  85. package/src/lib/services/calc-api/calc-word.service.js.map +1 -0
  86. package/src/lib/services/calc-api/promise-helper.function.d.ts +2 -0
  87. package/src/lib/services/calc-api/promise-helper.function.js +32 -0
  88. package/src/lib/services/calc-api/promise-helper.function.js.map +1 -0
  89. package/src/lib/services/custom-xml-part.service.d.ts +5 -0
  90. package/src/lib/services/custom-xml-part.service.js +269 -0
  91. package/src/lib/services/custom-xml-part.service.js.map +1 -0
  92. package/src/lib/services/document/document.service.d.ts +16 -0
  93. package/src/lib/services/document/document.service.js +32 -0
  94. package/src/lib/services/document/document.service.js.map +1 -0
  95. package/src/lib/services/{index.ts → index.d.ts} +5 -10
  96. package/src/lib/services/index.js +9 -0
  97. package/src/lib/services/index.js.map +1 -0
  98. package/src/lib/services/leap-events.service.d.ts +26 -0
  99. package/src/lib/services/leap-events.service.js +357 -0
  100. package/src/lib/services/leap-events.service.js.map +1 -0
  101. package/src/lib/services/logger/logger.service.d.ts +10 -0
  102. package/src/lib/services/logger/logger.service.js +39 -0
  103. package/src/lib/services/logger/logger.service.js.map +1 -0
  104. package/src/lib/services/signalr/signalr.service.d.ts +9 -0
  105. package/src/lib/services/signalr/signalr.service.js +93 -0
  106. package/src/lib/services/signalr/signalr.service.js.map +1 -0
  107. package/.eslintrc.json +0 -25
  108. package/project.json +0 -27
  109. package/src/index.ts +0 -44
  110. package/src/lib/app-platform.ts +0 -270
  111. package/src/lib/environment/environment.dictionary.ts +0 -28
  112. package/src/lib/environment/environment.ts +0 -44
  113. package/src/lib/environment/leap/env.dev.au.config.ts +0 -33
  114. package/src/lib/environment/leap/env.live.au.config.ts +0 -32
  115. package/src/lib/environment/leap/env.live.ca.config.ts +0 -32
  116. package/src/lib/environment/leap/env.live.nz.config.ts +0 -32
  117. package/src/lib/environment/leap/env.live.uk.config.ts +0 -32
  118. package/src/lib/environment/leap/env.live.us.config.ts +0 -32
  119. package/src/lib/environment/leap/env.liveb.au.config.ts +0 -32
  120. package/src/lib/environment/leap/env.test.au.config.ts +0 -33
  121. package/src/lib/environment/leap/env.test.ca.config.ts +0 -33
  122. package/src/lib/environment/leap/env.test.nz.config.ts +0 -33
  123. package/src/lib/environment/leap/env.test.uk.config.ts +0 -33
  124. package/src/lib/environment/leap/env.test.us.config.ts +0 -33
  125. package/src/lib/functions/helpers.ts +0 -100
  126. package/src/lib/functions/xml.ts +0 -41
  127. package/src/lib/models/calc-api.model.ts +0 -74
  128. package/src/lib/models/constants/index.ts +0 -29
  129. package/src/lib/models/leap-events.model.ts +0 -79
  130. package/src/lib/models/leap.model.ts +0 -78
  131. package/src/lib/models/signalr.model.ts +0 -22
  132. package/src/lib/services/auth/auth.service.ts +0 -219
  133. package/src/lib/services/calc-api/calc-api-service.interface.ts +0 -12
  134. package/src/lib/services/calc-api/calc-word.service.ts +0 -117
  135. package/src/lib/services/calc-api/promise-helper.function.ts +0 -26
  136. package/src/lib/services/custom-xml-part.service.ts +0 -340
  137. package/src/lib/services/document/document.service.ts +0 -33
  138. package/src/lib/services/leap-events.service.ts +0 -489
  139. package/src/lib/services/logger/logger.service.ts +0 -42
  140. package/src/lib/services/signalr/signalr.service.ts +0 -88
  141. package/tsconfig.json +0 -20
  142. package/tsconfig.lib.json +0 -12
@@ -1,340 +0,0 @@
1
- /// <reference types="office-js" />
2
-
3
- import { promisifyAsync } from '../functions/helpers';
4
- import { toObj, toXml } from '../functions/xml';
5
- const retryTimes = 5;
6
-
7
- const getCustomXmlPartsByNamespace = (
8
- namespace: string
9
- ): Promise<Array<Office.CustomXmlPart> | null> => {
10
- const officeDocument: Office.Document = Office.context.document;
11
- if (officeDocument) {
12
- const officeCustomXmlParts = officeDocument.customXmlParts;
13
- //todo: use this format instead of promisifyAsync
14
- return new Promise((resolve) => {
15
- officeCustomXmlParts.getByNamespaceAsync(namespace, (result)=> {
16
- resolve(result.value)
17
- })
18
- } )
19
- } else {
20
- return Promise.resolve(null);
21
- }
22
- };
23
-
24
- //todo: remove all "any" reference in the project
25
- const getCustomXmlPartByNamespace = (namespace: string): Promise<any> => {
26
- return getCustomXmlPartsByNamespace(namespace)
27
- .then((customXmlParts: any) => {
28
- if (customXmlParts != null) {
29
- // We have something
30
- if (Array.isArray(customXmlParts)) {
31
- if (customXmlParts.length > 0) {
32
- return customXmlParts[0]; // Happy path
33
- } else {
34
- return null; // No error, but no matching custom XML part either
35
- }
36
- } else {
37
- // We have something, but it's not an array
38
- return customXmlParts;
39
- }
40
- }
41
- return null; // No error, but no matching custom XML part either
42
- })
43
- .catch((error) => {
44
- console.error(
45
- error,
46
- `[CustomXmlPartService] (getCustomXmlPartByNamespace) Failed to get custom XML part by namespace`
47
- );
48
- return null;
49
- });
50
- };
51
-
52
- const getCustomXmlPartData = (partOrNamespace: string): Promise<any> => {
53
- return new Promise((resolve, reject) => {
54
- return new Promise((innerResolve) => {
55
- if (typeof partOrNamespace === 'string') {
56
- innerResolve(getCustomXmlPartByNamespace(partOrNamespace));
57
- } else {
58
- return innerResolve(partOrNamespace);
59
- }
60
- })
61
- .then((customXmlPart: any) => {
62
- if (customXmlPart != null) {
63
- const getXmlAsync = promisifyAsync(
64
- customXmlPart.getXmlAsync.bind(customXmlPart)
65
- );
66
- return getXmlAsync({});
67
- } else {
68
- return null;
69
- }
70
- })
71
- .then((result) => {
72
- resolve(toObj(result as string));
73
- })
74
- .catch((error) => {
75
- console.error(
76
- error,
77
- `[CustomXmlPartService] (getCustomXmlPartData) Failed to get custom XML part data`
78
- );
79
- reject(error);
80
- });
81
- });
82
- };
83
-
84
- const getNodes = (
85
- customXmlPart: Office.CustomXmlPart,
86
- xPath: string = '/*'
87
- ): Promise<Array<Office.CustomXmlNode>> => {
88
- const getNodes = promisifyAsync<Array<Office.CustomXmlNode>>(
89
- customXmlPart.getNodesAsync.bind(customXmlPart)
90
- );
91
- return getNodes(xPath);
92
- };
93
-
94
- const setNodeXml = (node: Office.CustomXmlNode, xml: string): Promise<void> => {
95
- const setXml = promisifyAsync<void>(node.setXmlAsync.bind(node));
96
- return setXml(xml, {});
97
- };
98
-
99
- const updateCustomXmlPart = (
100
- customXmlPart: any,
101
- xml: string,
102
- rootTagName: string
103
- ): Promise<void> => {
104
- rootTagName = rootTagName || '';
105
- const promises: Array<Promise<void>> = [];
106
- // If custom XML part exists, replace it
107
- return getNodes(customXmlPart)
108
- .then((nodes: Array<Office.CustomXmlNode>) => {
109
- for (let i = 0; i < nodes.length; i++) {
110
- const node: any = nodes[i] as Office.CustomXmlNode;
111
-
112
- if (
113
- node &&
114
- node.baseName &&
115
- node.baseName.toUpperCase() === rootTagName.toUpperCase()
116
- ) {
117
- // Case-insensitive match
118
- const promise = setNodeXml(node, xml)
119
- .then(() => {
120
- console.log(
121
- '[CustomXmlPartService] updateCustomXmlPart succeeded'
122
- );
123
- })
124
- .catch((error) => {
125
- console.error(
126
- error,
127
- '[CustomXmlPartService] updateCustomXmlPart failed'
128
- );
129
- return Promise.reject(error);
130
- });
131
-
132
- promises.push(promise);
133
- } else {
134
- console.log(`Could not find ${rootTagName} in the custom XML part`);
135
- }
136
- }
137
- })
138
- .then(() => {
139
- return Promise.all(promises);
140
- })
141
- .then(() => {
142
- return Promise.resolve();
143
- });
144
- };
145
-
146
- const addCustomXmlPart = (objOrXml: any, options?: any): Promise<void> => {
147
- return new Promise<void>((resolve, reject) => {
148
- Promise.resolve()
149
- .then(() => {
150
- // Setup values
151
- let obj: any; //todo: check this obj
152
- let xml: string;
153
- options = options || { rootTagName: '' };
154
- if (typeof objOrXml === 'string' || objOrXml instanceof String) {
155
- obj = toObj(objOrXml as string);
156
- xml = objOrXml as string;
157
- } else {
158
- obj = objOrXml;
159
- xml = toXml(objOrXml, options.rootTagName, options);
160
- }
161
-
162
- const officeDocument: Office.Document = Office.context.document;
163
- const officeCustomXmlParts = officeDocument.customXmlParts;
164
- const add = promisifyAsync<Office.CustomXmlPart>(
165
- officeCustomXmlParts.addAsync.bind(officeCustomXmlParts)
166
- );
167
- return add(xml, {});
168
- })
169
- .then((customXmlPart) => {
170
- if (customXmlPart == null) {
171
- // TODO
172
- }
173
- resolve();
174
- })
175
- .catch((error) => {
176
- console.error(
177
- error,
178
- `[CustomXmlPartService] (addCustomXmlPart) Failed to add custom XML part`
179
- );
180
- reject(error);
181
- });
182
- });
183
- };
184
-
185
- const updateCustomXmlPartData = (
186
- partOrNamespace: Office.CustomXmlPart | string,
187
- objOrXml: any,
188
- options?: any
189
- ): Promise<boolean> => {
190
- return new Promise<boolean>((resolve, reject) => {
191
- return new Promise<Office.CustomXmlPart | null>((innerResolve) => {
192
- if (typeof partOrNamespace === 'string' || partOrNamespace instanceof String) {
193
- innerResolve(getCustomXmlPartByNamespace(partOrNamespace as string));
194
- } else {
195
- return innerResolve(partOrNamespace);
196
- }
197
- })
198
- .then((customXmlPart) => {
199
- // Setup values
200
- let obj: any;
201
- let xml: string;
202
- options = options || { rootTagName: '' };
203
- if (typeof objOrXml === 'string' || objOrXml instanceof String) {
204
- obj = toObj(objOrXml as string);
205
- xml = objOrXml as string;
206
- } else {
207
- obj = objOrXml;
208
- xml = toXml(objOrXml, options.rootTagName, options);
209
- }
210
-
211
- if (customXmlPart != null) {
212
- return updateCustomXmlPart(customXmlPart, xml, options.rootTagName);
213
- } else {
214
- return addCustomXmlPart(xml, options);
215
- }
216
- })
217
- .then(() => {
218
- resolve(true);
219
- })
220
- .catch((error) => {
221
- console.error(
222
- error,
223
- `[CustomXmlPartService] (updateCustomXmlPartData) Failed to update ` +
224
- `${
225
- typeof partOrNamespace === 'string' ? partOrNamespace : ''
226
- } custom XML part`
227
- );
228
- reject(error);
229
- });
230
- });
231
- };
232
-
233
- const retryUpdateCustomXmlPartData = (
234
- namespace: string,
235
- data: string,
236
- options: { rootTagName: string } & { [key: string]: any },
237
- retries = retryTimes
238
- ): Promise<void> => {
239
- const { rootTagName } = options;
240
- return new Promise<void>((resolve, reject) => {
241
- console.log(
242
- `[CustomXmlPartService] Updating ${namespace} tag ${rootTagName}`
243
- );
244
- updateCustomXmlPartData(namespace, data, options)
245
- .then(() => {
246
- resolve();
247
- })
248
- .catch((error) => {
249
- if (retries > 0) {
250
- console.log(
251
- `[CustomXmlPartService] Update ${namespace} tag ${rootTagName} failed - Retrying ${
252
- retryTimes - retries + 1
253
- }...`
254
- );
255
- setTimeout(() => {
256
- retryUpdateCustomXmlPartData(namespace, data, options, retries - 1)
257
- .then(resolve)
258
- .catch(reject);
259
- }, 2000);
260
- } else {
261
- reject(error);
262
- }
263
- });
264
- });
265
- };
266
-
267
- export const getDataByNamespace = (
268
- namespace: string,
269
- retries = 6
270
- ): Promise<any> => {
271
- return new Promise((resolve, reject) => {
272
- getCustomXmlPartData(namespace)
273
- .then((data) => {
274
- resolve(data);
275
- })
276
- .catch((_) => {
277
- if (retries > 0) {
278
- console.log(
279
- `[CustomXmlPartService] Get data from ${namespace} failed - Retrying ${
280
- retryTimes - retries + 1
281
- }...`
282
- );
283
- setTimeout(() => {
284
- getDataByNamespace(namespace, retries - 1)
285
- .then(resolve)
286
- .catch(reject);
287
- }, 2000);
288
- } else {
289
- reject(`Unable to get custom XML part using namespace ${namespace}`);
290
- }
291
- });
292
- });
293
- };
294
-
295
- export const updateXmlDataByNamespace = (
296
- namespace: string,
297
- data: string,
298
- rootTagName: string
299
- ): Promise<void> => {
300
- const options = { rootTagName };
301
- return retryUpdateCustomXmlPartData(namespace, data, options);
302
- };
303
-
304
- export const addHandlerForCustomXmlPart = (
305
- namespace: string,
306
- eventType: Office.EventType,
307
- handler: any
308
- ): Promise<void | null> => {
309
- return getCustomXmlPartByNamespace(namespace).then((customXmlPart: any) => {
310
- if (customXmlPart != null) {
311
- const addHandler = promisifyAsync<void>(
312
- customXmlPart.addHandlerAsync.bind(customXmlPart)
313
- );
314
- return addHandler(eventType, handler, {});
315
- } else {
316
- return null;
317
- }
318
- });
319
- };
320
-
321
- export const getChildNodes = (
322
- node: Office.CustomXmlNode,
323
- xPath: string = '*'
324
- ): Promise<Array<Office.CustomXmlNode>> => {
325
- const getNodes = promisifyAsync<Array<Office.CustomXmlNode>>(
326
- node.getNodesAsync.bind(node)
327
- );
328
- return getNodes(xPath);
329
- };
330
-
331
- export const getNodeText = (
332
- node: Office.CustomXmlNode | null
333
- ): Promise<string> => {
334
- if (node) {
335
- const getText = promisifyAsync<string>(node.getTextAsync.bind(node));
336
- return getText({});
337
- } else {
338
- return Promise.resolve('');
339
- }
340
- };
@@ -1,33 +0,0 @@
1
- import { LeapEventAction, LeapEventType } from '../../models/leap-events.model';
2
- import { LeapEventsService } from '../leap-events.service';
3
- import { LoggerService } from '../logger/logger.service';
4
-
5
- export class DocumentService {
6
- constructor(
7
- private leapEventsService: LeapEventsService,
8
- private loggerService: LoggerService
9
- ) {}
10
-
11
- createDocument(params: {precedentId: string, body: string, closeExisting?: boolean}): Promise<{precedentId: string, body: string, closeExisting?: boolean}> {
12
- return new Promise((resolve) => {
13
- Promise.resolve(() => {
14
- this.loggerService.log(
15
- '[DocumentService] (createDocument) Creating a document based on the precedent and generated body'
16
- );
17
- })
18
- .then(() => {
19
- const id = new Date().getTime().toString();
20
- return this.leapEventsService.addEvent({
21
- id,
22
- correlationId: null,
23
- eventType: LeapEventType.WordAppEvent,
24
- action: LeapEventAction.WordApp_CreateDocument,
25
- data: params
26
- });
27
- })
28
- .then(() =>{
29
- return resolve(params)
30
- })
31
- })
32
- }
33
- }