dotcms 0.0.18 → 0.0.20

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 (131) hide show
  1. package/README.md +9 -9
  2. package/package.json +7 -11
  3. package/{index.d.ts → src/index.d.ts} +0 -0
  4. package/src/index.js +40 -0
  5. package/src/index.js.map +1 -0
  6. package/{lib → src/lib}/api/DotApiAuthorization.d.ts +0 -1
  7. package/src/lib/api/DotApiAuthorization.js +46 -0
  8. package/src/lib/api/DotApiAuthorization.js.map +1 -0
  9. package/{lib → src/lib}/api/DotApiConfiguration.d.ts +0 -0
  10. package/src/lib/api/DotApiConfiguration.js +32 -0
  11. package/src/lib/api/DotApiConfiguration.js.map +1 -0
  12. package/{lib → src/lib}/api/DotApiContent.d.ts +0 -0
  13. package/src/lib/api/DotApiContent.js +59 -0
  14. package/src/lib/api/DotApiContent.js.map +1 -0
  15. package/{lib → src/lib}/api/DotApiContentType.d.ts +1 -1
  16. package/src/lib/api/DotApiContentType.js +35 -0
  17. package/src/lib/api/DotApiContentType.js.map +1 -0
  18. package/{lib → src/lib}/api/DotApiElasticSearch.d.ts +0 -0
  19. package/src/lib/api/DotApiElasticSearch.js +37 -0
  20. package/src/lib/api/DotApiElasticSearch.js.map +1 -0
  21. package/{lib → src/lib}/api/DotApiEvent.d.ts +0 -0
  22. package/src/lib/api/DotApiEvent.js +20 -0
  23. package/src/lib/api/DotApiEvent.js.map +1 -0
  24. package/{lib → src/lib}/api/DotApiForm.d.ts +1 -1
  25. package/src/lib/api/DotApiForm.js +25 -0
  26. package/src/lib/api/DotApiForm.js.map +1 -0
  27. package/{lib → src/lib}/api/DotApiLanguage.d.ts +0 -0
  28. package/src/lib/api/DotApiLanguage.js +33 -0
  29. package/src/lib/api/DotApiLanguage.js.map +1 -0
  30. package/{lib → src/lib}/api/DotApiNavigation.d.ts +1 -1
  31. package/src/lib/api/DotApiNavigation.js +34 -0
  32. package/src/lib/api/DotApiNavigation.js.map +1 -0
  33. package/{lib → src/lib}/api/DotApiPage.d.ts +1 -1
  34. package/src/lib/api/DotApiPage.js +51 -0
  35. package/src/lib/api/DotApiPage.js.map +1 -0
  36. package/{lib → src/lib}/api/DotApiSite.d.ts +0 -0
  37. package/src/lib/api/DotApiSite.js +31 -0
  38. package/src/lib/api/DotApiSite.js.map +1 -0
  39. package/{lib → src/lib}/api/DotApiWidget.d.ts +0 -0
  40. package/src/lib/api/DotApiWidget.js +33 -0
  41. package/src/lib/api/DotApiWidget.js.map +1 -0
  42. package/{lib → src/lib}/models/DotCMSAuthorization.model.d.ts +0 -0
  43. package/src/lib/models/DotCMSAuthorization.model.js +3 -0
  44. package/src/lib/models/DotCMSAuthorization.model.js.map +1 -0
  45. package/{lib → src/lib}/models/DotCMSConfiguration.model.d.ts +1 -1
  46. package/src/lib/models/DotCMSConfiguration.model.js +3 -0
  47. package/src/lib/models/DotCMSConfiguration.model.js.map +1 -0
  48. package/{lib → src/lib}/models/DotCMSContent.model.d.ts +0 -0
  49. package/src/lib/models/DotCMSContent.model.js +3 -0
  50. package/src/lib/models/DotCMSContent.model.js.map +1 -0
  51. package/{lib → src/lib}/models/DotCMSElasticSearch.model.d.ts +0 -0
  52. package/src/lib/models/DotCMSElasticSearch.model.js +3 -0
  53. package/src/lib/models/DotCMSElasticSearch.model.js.map +1 -0
  54. package/{lib → src/lib}/models/DotCMSError.model.d.ts +0 -0
  55. package/src/lib/models/DotCMSError.model.js +3 -0
  56. package/src/lib/models/DotCMSError.model.js.map +1 -0
  57. package/{lib → src/lib}/models/DotCMSEvent.model.d.ts +0 -0
  58. package/src/lib/models/DotCMSEvent.model.js +3 -0
  59. package/src/lib/models/DotCMSEvent.model.js.map +1 -0
  60. package/{lib → src/lib}/models/DotCMSForm.model.d.ts +0 -0
  61. package/src/lib/models/DotCMSForm.model.js +3 -0
  62. package/src/lib/models/DotCMSForm.model.js.map +1 -0
  63. package/{lib → src/lib}/models/DotCMSHttpClient.model.d.ts +0 -0
  64. package/src/lib/models/DotCMSHttpClient.model.js +3 -0
  65. package/src/lib/models/DotCMSHttpClient.model.js.map +1 -0
  66. package/{lib → src/lib}/models/DotCMSLanguage.model.d.ts +0 -0
  67. package/src/lib/models/DotCMSLanguage.model.js +3 -0
  68. package/src/lib/models/DotCMSLanguage.model.js.map +1 -0
  69. package/{lib → src/lib}/models/DotCMSNavigation.model.d.ts +0 -0
  70. package/src/lib/models/DotCMSNavigation.model.js +3 -0
  71. package/src/lib/models/DotCMSNavigation.model.js.map +1 -0
  72. package/{lib → src/lib}/models/DotCMSPage.model.d.ts +0 -0
  73. package/src/lib/models/DotCMSPage.model.js +3 -0
  74. package/src/lib/models/DotCMSPage.model.js.map +1 -0
  75. package/{lib → src/lib}/models/DotCMSPageFormat.model.d.ts +0 -0
  76. package/src/lib/models/DotCMSPageFormat.model.js +3 -0
  77. package/src/lib/models/DotCMSPageFormat.model.js.map +1 -0
  78. package/{lib → src/lib}/models/DotCMSSite.model.d.ts +0 -0
  79. package/src/lib/models/DotCMSSite.model.js +3 -0
  80. package/src/lib/models/DotCMSSite.model.js.map +1 -0
  81. package/{lib → src/lib}/models/index.d.ts +0 -0
  82. package/src/lib/models/index.js +17 -0
  83. package/src/lib/models/index.js.map +1 -0
  84. package/{lib → src/lib}/utils/DotCMSHttpClient.d.ts +0 -0
  85. package/src/lib/utils/DotCMSHttpClient.js +14 -0
  86. package/src/lib/utils/DotCMSHttpClient.js.map +1 -0
  87. package/{lib → src/lib}/utils/getEsQuery.d.ts +0 -0
  88. package/src/lib/utils/getEsQuery.js +39 -0
  89. package/src/lib/utils/getEsQuery.js.map +1 -0
  90. package/{lib → src/lib}/utils/request.d.ts +1 -1
  91. package/src/lib/utils/request.js +47 -0
  92. package/src/lib/utils/request.js.map +1 -0
  93. package/bundles/dotcms.umd.js +0 -966
  94. package/bundles/dotcms.umd.js.map +0 -1
  95. package/bundles/dotcms.umd.min.js +0 -16
  96. package/bundles/dotcms.umd.min.js.map +0 -1
  97. package/dotcms.d.ts +0 -4
  98. package/dotcms.metadata.json +0 -1
  99. package/esm2015/dotcms.js +0 -5
  100. package/esm2015/index.js +0 -36
  101. package/esm2015/lib/api/DotApiAuthorization.js +0 -43
  102. package/esm2015/lib/api/DotApiConfiguration.js +0 -28
  103. package/esm2015/lib/api/DotApiContent.js +0 -55
  104. package/esm2015/lib/api/DotApiContentType.js +0 -31
  105. package/esm2015/lib/api/DotApiElasticSearch.js +0 -33
  106. package/esm2015/lib/api/DotApiEvent.js +0 -16
  107. package/esm2015/lib/api/DotApiForm.js +0 -21
  108. package/esm2015/lib/api/DotApiLanguage.js +0 -29
  109. package/esm2015/lib/api/DotApiNavigation.js +0 -30
  110. package/esm2015/lib/api/DotApiPage.js +0 -47
  111. package/esm2015/lib/api/DotApiSite.js +0 -27
  112. package/esm2015/lib/api/DotApiWidget.js +0 -29
  113. package/esm2015/lib/models/DotCMSAuthorization.model.js +0 -2
  114. package/esm2015/lib/models/DotCMSConfiguration.model.js +0 -2
  115. package/esm2015/lib/models/DotCMSContent.model.js +0 -2
  116. package/esm2015/lib/models/DotCMSElasticSearch.model.js +0 -2
  117. package/esm2015/lib/models/DotCMSError.model.js +0 -2
  118. package/esm2015/lib/models/DotCMSEvent.model.js +0 -2
  119. package/esm2015/lib/models/DotCMSForm.model.js +0 -2
  120. package/esm2015/lib/models/DotCMSHttpClient.model.js +0 -2
  121. package/esm2015/lib/models/DotCMSLanguage.model.js +0 -2
  122. package/esm2015/lib/models/DotCMSNavigation.model.js +0 -2
  123. package/esm2015/lib/models/DotCMSPage.model.js +0 -2
  124. package/esm2015/lib/models/DotCMSPageFormat.model.js +0 -2
  125. package/esm2015/lib/models/DotCMSSite.model.js +0 -2
  126. package/esm2015/lib/models/index.js +0 -14
  127. package/esm2015/lib/utils/DotCMSHttpClient.js +0 -10
  128. package/esm2015/lib/utils/getEsQuery.js +0 -35
  129. package/esm2015/lib/utils/request.js +0 -44
  130. package/fesm2015/dotcms.js +0 -494
  131. package/fesm2015/dotcms.js.map +0 -1
@@ -1,494 +0,0 @@
1
- import { __awaiter, __rest } from 'tslib';
2
- import fetch from 'cross-fetch';
3
-
4
- function getErrorMessage(data) {
5
- if (data.errors) {
6
- return data.errors[0].message;
7
- }
8
- if (data.error) {
9
- return data.error;
10
- }
11
- }
12
- /**
13
- * DotCMS Authentication handler to intereact with {@link https://dotcms.com/docs/latest/rest-api-authentication | Authentication API}
14
- *
15
- */
16
- class DotApiAuthorization {
17
- /**
18
- * Given user, password and expiration date to get a DotCMS Autorization Token
19
- */
20
- getToken(params) {
21
- const { user, password, expirationDays, host } = params;
22
- return fetch(`${host || ''}/api/v1/authentication/api-token`, {
23
- method: 'POST',
24
- headers: {
25
- 'Content-Type': 'application/json'
26
- },
27
- body: JSON.stringify({
28
- user: user,
29
- password: password,
30
- expirationDays: expirationDays || 10
31
- })
32
- }).then((res) => __awaiter(this, void 0, void 0, function* () {
33
- const data = yield res.json();
34
- if (res.status === 200) {
35
- return data.entity.token;
36
- }
37
- throw {
38
- message: getErrorMessage(data),
39
- statusCode: res.status
40
- };
41
- }));
42
- }
43
- }
44
-
45
- /**
46
- * Get the information of DotCMS configuration
47
- *
48
- */
49
- class DotApiConfiguration {
50
- constructor(httpClient) {
51
- this.dotCMSHttpClient = httpClient;
52
- }
53
- // TODO: CATCH THIS ERROR
54
- get() {
55
- return this.dotCMSHttpClient
56
- .request({
57
- url: '/api/v1/configuration'
58
- })
59
- .then((response) => __awaiter(this, void 0, void 0, function* () {
60
- if (response.status === 200) {
61
- const data = yield response.json();
62
- return data.entity;
63
- }
64
- throw {
65
- message: yield response.text(),
66
- statusCode: response.status
67
- };
68
- }));
69
- }
70
- }
71
-
72
- // tslint:disable-next-line:cyclomatic-complexity
73
- function getEsQuery(params) {
74
- const { contentType, queryParams: { languageId, sortResultsBy, sortOrder1, offset, pagination, itemsPerPage, numberOfResults, detailedSearchQuery } } = params;
75
- const paginationQuery = `,
76
- "from": OFFSETVALUE,
77
- "size": SIZEPERPAGE`;
78
- let query = `{
79
- "query": {
80
- "bool": {
81
- "must": {
82
- "query_string" : {
83
- "query" : "+contentType:CONTENTTYPE +languageId:LANGUAGEIDVALUE ${detailedSearchQuery || ''}"
84
- }
85
- }
86
- }
87
- },
88
- "sort" : [
89
- { "SORTBYVALUE" : {"order" : "SORTTYPEVALUE"}}
90
- ]
91
- ${pagination || numberOfResults ? paginationQuery : ''}
92
- }`;
93
- const esParams = {
94
- CONTENTTYPE: contentType,
95
- LANGUAGEIDVALUE: languageId || '1',
96
- SORTBYVALUE: sortResultsBy || 'title_dotraw',
97
- SORTTYPEVALUE: sortOrder1 || 'asc',
98
- OFFSETVALUE: offset || '0',
99
- SIZEPERPAGE: pagination ? itemsPerPage || 20 : numberOfResults || 40
100
- };
101
- Object.keys(esParams).forEach((key) => {
102
- query = query.replace(key, esParams[key]);
103
- });
104
- return query;
105
- }
106
-
107
- /**
108
- * Request content from DotCMS using the {@link https://dotcms.com/docs/latest/elasticsearch-rest-api | Elastic Search API}
109
- *
110
- */
111
- class DotApiElasticSearch {
112
- constructor(httpClient) {
113
- this.dotCMSHttpClient = httpClient;
114
- }
115
- /**
116
- * Provide the content type and the elastic search query and get the results contentlets and elastic search information
117
- *
118
- */
119
- search(params) {
120
- return this.dotCMSHttpClient
121
- .request({
122
- url: '/api/es/search',
123
- method: 'POST',
124
- body: getEsQuery(params)
125
- })
126
- .then((response) => __awaiter(this, void 0, void 0, function* () {
127
- if (response.status === 200) {
128
- return response.json();
129
- }
130
- throw {
131
- message: yield response.text(),
132
- statusCode: response.status
133
- };
134
- }));
135
- }
136
- }
137
-
138
- /**
139
- * Emit custom events for the DotCMS Edit Mode
140
- *
141
- */
142
- class DotApiEvent {
143
- emit(params) {
144
- const { name, data } = params;
145
- const customEvent = window.top.document.createEvent('CustomEvent');
146
- customEvent.initCustomEvent('ng-event', false, false, {
147
- name: name,
148
- data: data
149
- });
150
- window.top.document.dispatchEvent(customEvent);
151
- }
152
- }
153
-
154
- /**
155
- * Get DotCMS {@link https://dotcms.com/docs/latest/adding-and-editing-languages | Language code}
156
- *
157
- */
158
- class DotApiLanguage {
159
- constructor(appConfig) {
160
- this.dotAppConfig = appConfig;
161
- }
162
- getId(langCode) {
163
- return __awaiter(this, void 0, void 0, function* () {
164
- const languages = yield this.getLanguages();
165
- const language = languages.find((lang) => lang.languageCode === langCode);
166
- return language ? `${language.id}` : null;
167
- });
168
- }
169
- getLanguages() {
170
- return __awaiter(this, void 0, void 0, function* () {
171
- if (this._languagesConf) {
172
- return this._languagesConf;
173
- }
174
- this._languagesConf = yield this.dotAppConfig
175
- .get()
176
- .then((data) => data.languages);
177
- return this._languagesConf;
178
- });
179
- }
180
- }
181
-
182
- /**
183
- * Retrieve information about the dotCMS file and folder tree with the {@link https://dotcms.com/docs/latest/navigation-rest-api | Navigation REST API }
184
- *
185
- */
186
- class DotApiNavigation {
187
- constructor(httpClient) {
188
- this.dotCMSHttpClient = httpClient;
189
- }
190
- get(deep = '2', location = '/') {
191
- return this.dotCMSHttpClient
192
- .request({
193
- url: `/api/v1/nav/${location}`,
194
- params: {
195
- deep
196
- }
197
- })
198
- .then((res) => __awaiter(this, void 0, void 0, function* () {
199
- if (res.status === 200) {
200
- const data = yield res.json();
201
- return data.entity;
202
- }
203
- throw {
204
- message: yield res.text(),
205
- statusCode: res.status
206
- };
207
- }));
208
- }
209
- }
210
-
211
- /**
212
- * Allow easy interaction with {@link https://dotcms.com/docs/latest/page-rest-api-layout-as-a-service-laas | DotCMS Page API}
213
- *
214
- */
215
- class DotApiPage {
216
- constructor(httpClient, appLanguage) {
217
- this.dotCMSHttpClient = httpClient;
218
- this.dotAppLanguage = appLanguage;
219
- }
220
- /**
221
- * Given the page url and the language return a {@link DotCMSPageAsset}
222
- *
223
- */
224
- get(params, format = "json" /* JSON */) {
225
- return __awaiter(this, void 0, void 0, function* () {
226
- if (params.language) {
227
- params = Object.assign(Object.assign({}, params), { language: isNaN(params.language)
228
- ? yield this.dotAppLanguage.getId(params.language)
229
- : params.language });
230
- }
231
- params = Object.assign(Object.assign({}, params), { url: `/api/v1/page/${format}${params.url}` });
232
- return this.dotCMSHttpClient.request(params).then((res) => __awaiter(this, void 0, void 0, function* () {
233
- if (res.status === 200) {
234
- const data = yield res.json();
235
- return data.entity;
236
- }
237
- const response = yield res.text();
238
- let error;
239
- try {
240
- error = {
241
- statusCode: res.status,
242
- message: JSON.parse(response).message
243
- };
244
- }
245
- catch (_a) {
246
- error = {
247
- statusCode: res.status,
248
- message: response
249
- };
250
- }
251
- throw error;
252
- }));
253
- });
254
- }
255
- }
256
-
257
- /**
258
- * Get information from {@link https://dotcms.com/docs/latest/multi-site-management | DotCMS Sites}
259
- */
260
- class DotApiSite {
261
- constructor(httpClient) {
262
- this.dotCMSHttpClient = httpClient;
263
- }
264
- getCurrentSite() {
265
- return this.dotCMSHttpClient
266
- .request({
267
- url: `/api/v1/site/currentSite`
268
- })
269
- .then((response) => __awaiter(this, void 0, void 0, function* () {
270
- if (response.status === 200) {
271
- const data = yield response.json();
272
- const _a = data.entity, { map } = _a, site = __rest(_a, ["map"]);
273
- return site;
274
- }
275
- throw {
276
- message: yield response.text(),
277
- statusCode: response.status
278
- };
279
- }));
280
- }
281
- }
282
-
283
- /**
284
- * DotCMS {@link https://dotcms.com/docs/latest/widgets | widgets handler}
285
- */
286
- class DotApiWidget {
287
- constructor(httpClient) {
288
- this.dotCMSHttpClient = httpClient;
289
- }
290
- /**
291
- * Get the widght HTML strong with it identifier
292
- *
293
- */
294
- getHtml(widgetId) {
295
- return this.dotCMSHttpClient
296
- .request({
297
- url: `/api/widget/id/${widgetId}`
298
- })
299
- .then((response) => __awaiter(this, void 0, void 0, function* () {
300
- if (response.status === 200) {
301
- return response.text();
302
- }
303
- throw {
304
- message: yield response.text(),
305
- statusCode: response.status
306
- };
307
- }));
308
- }
309
- }
310
-
311
- function getUrl({ params, url }, { host, hostId }) {
312
- return __awaiter(this, void 0, void 0, function* () {
313
- if (!host) {
314
- throw new Error('Please pass the DotCMS instance in the initDotCMS initialization');
315
- }
316
- const newUrl = new URL(`${host}${url}`);
317
- const paramsKeys = params ? Object.keys(params) : [];
318
- if (paramsKeys.length) {
319
- paramsKeys.map((key) => {
320
- newUrl.searchParams.append(key, params[key]);
321
- });
322
- }
323
- if (hostId) {
324
- newUrl.searchParams.append('host_id', hostId);
325
- }
326
- return `${newUrl.toString()}`;
327
- });
328
- }
329
- function shouldAppendBody(params) {
330
- return params.method === 'POST' && !!params.body;
331
- }
332
- function getOpts(params, config) {
333
- let opts = {
334
- method: params.method || 'GET',
335
- headers: {
336
- Authorization: `Bearer ${config.token}`,
337
- 'Content-type': 'application/json'
338
- }
339
- };
340
- if (shouldAppendBody(params)) {
341
- opts = Object.assign(Object.assign({}, opts), { body: params.body });
342
- }
343
- return opts;
344
- }
345
- function request(options, config) {
346
- return __awaiter(this, void 0, void 0, function* () {
347
- const url = yield getUrl(options, config);
348
- const opts = getOpts(options, config);
349
- return fetch(url, opts);
350
- });
351
- }
352
-
353
- class DotCMSHttpClient {
354
- constructor(config) {
355
- this._config = config;
356
- }
357
- request(params) {
358
- return request(params, this._config);
359
- }
360
- }
361
-
362
- function populateQueryUrl(params) {
363
- let url = '';
364
- const attrs = {
365
- depth: `/depth/${params.options.depth}`,
366
- limit: `/limit/${params.options.limit}`,
367
- offset: `/offset/${params.options.offset}`,
368
- orderBy: `/orderby/${params.options.orderBy}`
369
- };
370
- if (params.queryParams) {
371
- for (const key of Object.keys(params.queryParams)) {
372
- url += `+${key}:${params.queryParams[key]}%20`;
373
- }
374
- }
375
- for (const key of Object.keys(params.options)) {
376
- url += attrs[key];
377
- }
378
- return url;
379
- }
380
- /**
381
- * Query/Save/Publish the information of DotCMS Content
382
- *
383
- */
384
- class DotApiContent {
385
- constructor(httpClient) {
386
- this.dotCMSHttpClient = httpClient;
387
- }
388
- query(params) {
389
- const url = `/api/content/query/+contentType:${params.contentType}%20${populateQueryUrl(params)}`;
390
- return this.doRequest(url, null, 'GET');
391
- }
392
- save(params) {
393
- return this.doRequest('/api/content/save/1', params);
394
- }
395
- publish(params) {
396
- return this.doRequest('/api/content/publish/1', params);
397
- }
398
- doRequest(url, params, httpMethod = 'POST') {
399
- return __awaiter(this, void 0, void 0, function* () {
400
- const response = yield this.dotCMSHttpClient.request({
401
- url,
402
- method: httpMethod,
403
- body: params ? JSON.stringify(params) : ''
404
- });
405
- if (response.status !== 200) {
406
- throw {
407
- message: yield response.text(),
408
- statusCode: response.status
409
- };
410
- }
411
- return response;
412
- });
413
- }
414
- }
415
-
416
- /**
417
- * Get the information of DotCMS contentTypes
418
- *
419
- */
420
- class DotApiContentType {
421
- constructor(httpClient) {
422
- this.dotCMSHttpClient = httpClient;
423
- }
424
- get(contentTypeId) {
425
- return __awaiter(this, void 0, void 0, function* () {
426
- const response = yield this.dotCMSHttpClient.request({
427
- url: `/api/v1/contenttype/id/${contentTypeId}`
428
- });
429
- if (response.status !== 200) {
430
- throw {
431
- message: yield response.text(),
432
- statusCode: response.status
433
- };
434
- }
435
- const data = yield response.json();
436
- return data.entity;
437
- });
438
- }
439
- getLayout(contentTypeId) {
440
- return this.get(contentTypeId).then((contentType) => {
441
- return contentType.layout;
442
- });
443
- }
444
- }
445
-
446
- /**
447
- * Creates and provide methods to render a DotCMS Form
448
- *
449
- */
450
- class DotApiForm {
451
- constructor(dotApiContentType, formConfig) {
452
- this.dotApiContentType = dotApiContentType;
453
- this.formConfig = formConfig;
454
- }
455
- /**
456
- * Render form on provided html element
457
- * @memberof DotApiForm
458
- */
459
- get() {
460
- return __awaiter(this, void 0, void 0, function* () {
461
- return this.dotApiContentType.get(this.formConfig.identifier);
462
- });
463
- }
464
- }
465
-
466
- const initDotCMS = (config) => {
467
- const httpClient = new DotCMSHttpClient(config);
468
- const apiConfig = new DotApiConfiguration(httpClient);
469
- const apiLanguage = new DotApiLanguage(apiConfig);
470
- const content = new DotApiContent(httpClient);
471
- const dotApiContentType = new DotApiContentType(httpClient);
472
- return {
473
- auth: new DotApiAuthorization(),
474
- config: apiConfig,
475
- content: content,
476
- contentType: new DotApiContentType(httpClient),
477
- esSearch: new DotApiElasticSearch(httpClient),
478
- event: new DotApiEvent(),
479
- form: (formConfig) => new DotApiForm(dotApiContentType, formConfig),
480
- language: apiLanguage,
481
- nav: new DotApiNavigation(httpClient),
482
- page: new DotApiPage(httpClient, apiLanguage),
483
- site: new DotApiSite(httpClient),
484
- widget: new DotApiWidget(httpClient),
485
- httpClient
486
- };
487
- };
488
-
489
- /**
490
- * Generated bundle index. Do not edit.
491
- */
492
-
493
- export { initDotCMS };
494
- //# sourceMappingURL=dotcms.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dotcms.js","sources":["../../../../libs/dotcms/src/lib/api/DotApiAuthorization.ts","../../../../libs/dotcms/src/lib/api/DotApiConfiguration.ts","../../../../libs/dotcms/src/lib/utils/getEsQuery.ts","../../../../libs/dotcms/src/lib/api/DotApiElasticSearch.ts","../../../../libs/dotcms/src/lib/api/DotApiEvent.ts","../../../../libs/dotcms/src/lib/api/DotApiLanguage.ts","../../../../libs/dotcms/src/lib/api/DotApiNavigation.ts","../../../../libs/dotcms/src/lib/api/DotApiPage.ts","../../../../libs/dotcms/src/lib/api/DotApiSite.ts","../../../../libs/dotcms/src/lib/api/DotApiWidget.ts","../../../../libs/dotcms/src/lib/utils/request.ts","../../../../libs/dotcms/src/lib/utils/DotCMSHttpClient.ts","../../../../libs/dotcms/src/lib/api/DotApiContent.ts","../../../../libs/dotcms/src/lib/api/DotApiContentType.ts","../../../../libs/dotcms/src/lib/api/DotApiForm.ts","../../../../libs/dotcms/src/index.ts","../../../../libs/dotcms/src/dotcms.ts"],"sourcesContent":["import { DotCMSAuthorizationLoginParams, DotCMSError } from '../models';\nimport fetch from 'cross-fetch';\nimport { Response } from 'cross-fetch/lib.fetch';\n\nfunction getErrorMessage(data: { [key: string]: any }) {\n if (data.errors) {\n return data.errors[0].message;\n }\n\n if (data.error) {\n return data.error;\n }\n}\n\n/**\n * DotCMS Authentication handler to intereact with {@link https://dotcms.com/docs/latest/rest-api-authentication | Authentication API}\n *\n */\nexport class DotApiAuthorization {\n /**\n * Given user, password and expiration date to get a DotCMS Autorization Token\n */\n\n getToken(params: DotCMSAuthorizationLoginParams): Promise<Response> {\n const { user, password, expirationDays, host } = params;\n\n return fetch(`${host || ''}/api/v1/authentication/api-token`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n user: user,\n password: password,\n expirationDays: expirationDays || 10\n })\n }).then(async (res: Response) => {\n const data = await res.json();\n\n if (res.status === 200) {\n return data.entity.token;\n }\n\n throw <DotCMSError>{\n message: getErrorMessage(data),\n statusCode: res.status\n };\n });\n }\n}\n","import { DotCMSHttpClient } from '../utils/DotCMSHttpClient';\nimport { DotCMSConfigurationItem, DotCMSError } from '../models';\n\n/**\n * Get the information of DotCMS configuration\n *\n */\nexport class DotApiConfiguration {\n private dotCMSHttpClient: DotCMSHttpClient;\n\n constructor(httpClient: DotCMSHttpClient) {\n this.dotCMSHttpClient = httpClient;\n }\n\n // TODO: CATCH THIS ERROR\n get(): Promise<DotCMSConfigurationItem> {\n return this.dotCMSHttpClient\n .request({\n url: '/api/v1/configuration'\n })\n .then(async (response: Response) => {\n if (response.status === 200) {\n const data = await response.json();\n return data.entity;\n }\n\n throw <DotCMSError>{\n message: await response.text(),\n statusCode: response.status\n };\n });\n }\n}\n","import { DotCMSElasticSearchParams } from '../models';\n\n// tslint:disable-next-line:cyclomatic-complexity\nexport function getEsQuery(params: DotCMSElasticSearchParams): string {\n const {\n contentType,\n queryParams: {\n languageId,\n sortResultsBy,\n sortOrder1,\n offset,\n pagination,\n itemsPerPage,\n numberOfResults,\n detailedSearchQuery\n }\n } = params;\n const paginationQuery = `,\n \"from\": OFFSETVALUE,\n \"size\": SIZEPERPAGE`;\n\n let query = `{\n \"query\": {\n \"bool\": {\n \"must\": {\n \"query_string\" : {\n \"query\" : \"+contentType:CONTENTTYPE +languageId:LANGUAGEIDVALUE ${\n detailedSearchQuery || ''\n }\"\n }\n }\n }\n },\n \"sort\" : [\n { \"SORTBYVALUE\" : {\"order\" : \"SORTTYPEVALUE\"}}\n ]\n ${pagination || numberOfResults ? paginationQuery : ''}\n }`;\n\n const esParams = {\n CONTENTTYPE: contentType,\n LANGUAGEIDVALUE: languageId || '1',\n SORTBYVALUE: sortResultsBy || 'title_dotraw',\n SORTTYPEVALUE: sortOrder1 || 'asc',\n OFFSETVALUE: offset || '0',\n SIZEPERPAGE: pagination ? itemsPerPage || 20 : numberOfResults || 40\n };\n\n Object.keys(esParams).forEach((key) => {\n query = query.replace(key, esParams[key]);\n });\n\n return query;\n}\n","import { DotCMSError } from './../models/DotCMSError.model';\nimport { DotCMSHttpClient } from '../utils/DotCMSHttpClient';\nimport { getEsQuery } from '../utils/getEsQuery';\nimport { DotCMSElasticSearchResult, DotCMSElasticSearchParams } from '../models';\n\n/**\n * Request content from DotCMS using the {@link https://dotcms.com/docs/latest/elasticsearch-rest-api | Elastic Search API}\n *\n */\nexport class DotApiElasticSearch {\n private dotCMSHttpClient: DotCMSHttpClient;\n\n constructor(httpClient: DotCMSHttpClient) {\n this.dotCMSHttpClient = httpClient;\n }\n\n /**\n * Provide the content type and the elastic search query and get the results contentlets and elastic search information\n *\n */\n search(params: DotCMSElasticSearchParams): Promise<DotCMSElasticSearchResult> {\n return this.dotCMSHttpClient\n .request({\n url: '/api/es/search',\n method: 'POST',\n body: getEsQuery(params)\n })\n .then(async (response: Response) => {\n if (response.status === 200) {\n return response.json();\n }\n\n throw <DotCMSError>{\n message: await response.text(),\n statusCode: response.status\n };\n });\n }\n}\n","import { DotCMSEventsParams } from '../models';\n\n/**\n * Emit custom events for the DotCMS Edit Mode\n *\n */\nexport class DotApiEvent {\n emit(params: DotCMSEventsParams): void {\n const { name, data } = params;\n const customEvent = window.top.document.createEvent('CustomEvent');\n customEvent.initCustomEvent('ng-event', false, false, {\n name: name,\n data: data\n });\n window.top.document.dispatchEvent(customEvent);\n }\n}\n","import { DotApiConfiguration } from './DotApiConfiguration';\nimport { DotCMSConfigurationItem, DotCMSLanguageItem } from '../models';\n\n/**\n * Get DotCMS {@link https://dotcms.com/docs/latest/adding-and-editing-languages | Language code}\n *\n */\nexport class DotApiLanguage {\n private _languagesConf: DotCMSLanguageItem[];\n private dotAppConfig: DotApiConfiguration;\n\n constructor(appConfig: DotApiConfiguration) {\n this.dotAppConfig = appConfig;\n }\n\n async getId(langCode: string): Promise<string> {\n const languages: DotCMSLanguageItem[] = await this.getLanguages();\n\n const language = languages.find(\n (lang: DotCMSLanguageItem) => lang.languageCode === langCode\n );\n return language ? `${language.id}` : null;\n }\n\n async getLanguages(): Promise<DotCMSLanguageItem[]> {\n if (this._languagesConf) {\n return this._languagesConf;\n }\n\n this._languagesConf = await this.dotAppConfig\n .get()\n .then((data: DotCMSConfigurationItem) => data.languages);\n\n return this._languagesConf;\n }\n}\n","import { DotCMSHttpClient } from '../utils/DotCMSHttpClient';\nimport { DotCMSNavigationItem, DotCMSError } from '../models';\n\n/**\n * Retrieve information about the dotCMS file and folder tree with the {@link https://dotcms.com/docs/latest/navigation-rest-api | Navigation REST API }\n *\n */\nexport class DotApiNavigation {\n private dotCMSHttpClient: DotCMSHttpClient;\n\n constructor(httpClient: DotCMSHttpClient) {\n this.dotCMSHttpClient = httpClient;\n }\n\n get(deep = '2', location = '/'): Promise<DotCMSNavigationItem> {\n return this.dotCMSHttpClient\n .request({\n url: `/api/v1/nav/${location}`,\n params: {\n deep\n }\n })\n .then(async (res: Response) => {\n if (res.status === 200) {\n const data = await res.json();\n return <DotCMSNavigationItem>data.entity;\n }\n\n throw <DotCMSError>{\n message: await res.text(),\n statusCode: res.status\n };\n });\n }\n}\n","import { DotCMSPageParams } from './../models/DotCMSPage.model';\nimport { DotCMSHttpClient } from '../utils/DotCMSHttpClient';\nimport { DotCMSPageAsset, DotCMSError, DotCMSPageFormat } from '../models';\nimport { DotApiLanguage } from './DotApiLanguage';\n\n/**\n * Allow easy interaction with {@link https://dotcms.com/docs/latest/page-rest-api-layout-as-a-service-laas | DotCMS Page API}\n *\n */\nexport class DotApiPage {\n private dotAppLanguage: DotApiLanguage;\n private dotCMSHttpClient: DotCMSHttpClient;\n\n constructor(httpClient: DotCMSHttpClient, appLanguage: DotApiLanguage) {\n this.dotCMSHttpClient = httpClient;\n this.dotAppLanguage = appLanguage;\n }\n\n /**\n * Given the page url and the language return a {@link DotCMSPageAsset}\n *\n */\n async get(\n params: DotCMSPageParams,\n format: DotCMSPageFormat = DotCMSPageFormat.JSON\n ): Promise<DotCMSPageAsset> {\n if (params.language) {\n params = {\n ...params,\n language: isNaN(params.language as any)\n ? await this.dotAppLanguage.getId(params.language)\n : params.language\n };\n }\n\n params = {\n ...params,\n url: `/api/v1/page/${format}${params.url}`\n };\n\n return this.dotCMSHttpClient.request(params).then(async (res: Response) => {\n if (res.status === 200) {\n const data = await res.json();\n return <DotCMSPageAsset>data.entity;\n }\n\n const response = await res.text();\n let error: DotCMSError;\n try {\n error = {\n statusCode: res.status,\n message: JSON.parse(response).message\n };\n } catch {\n error = {\n statusCode: res.status,\n message: response\n };\n }\n\n throw error;\n });\n }\n}\n","import { DotCMSHttpClient } from '../utils/DotCMSHttpClient';\nimport { DotCMSSite, DotCMSError } from '../models';\n\n/**\n * Get information from {@link https://dotcms.com/docs/latest/multi-site-management | DotCMS Sites}\n */\nexport class DotApiSite {\n private dotCMSHttpClient: DotCMSHttpClient;\n\n constructor(httpClient: DotCMSHttpClient) {\n this.dotCMSHttpClient = httpClient;\n }\n\n getCurrentSite(): Promise<DotCMSSite> {\n return this.dotCMSHttpClient\n .request({\n url: `/api/v1/site/currentSite`\n })\n .then(async (response: Response) => {\n if (response.status === 200) {\n const data = await response.json();\n const { map, ...site } = data.entity;\n return <DotCMSSite>site;\n }\n\n throw <DotCMSError>{\n message: await response.text(),\n statusCode: response.status\n };\n });\n }\n}\n","import { DotCMSHttpClient } from '../utils/DotCMSHttpClient';\nimport { DotCMSError } from '../models';\n\n/**\n * DotCMS {@link https://dotcms.com/docs/latest/widgets | widgets handler}\n */\nexport class DotApiWidget {\n private dotCMSHttpClient: DotCMSHttpClient;\n\n constructor(httpClient: DotCMSHttpClient) {\n this.dotCMSHttpClient = httpClient;\n }\n\n /**\n * Get the widght HTML strong with it identifier\n *\n */\n getHtml(widgetId: string): Promise<string> {\n return this.dotCMSHttpClient\n .request({\n url: `/api/widget/id/${widgetId}`\n })\n .then(async (response: Response) => {\n if (response.status === 200) {\n return response.text();\n }\n\n throw <DotCMSError>{\n message: await response.text(),\n statusCode: response.status\n };\n });\n }\n}\n","import { DotCMSConfigurationParams, DotAppHttpRequestParams } from '../models';\nimport fetch from 'cross-fetch';\n\nasync function getUrl(\n { params, url }: DotAppHttpRequestParams,\n { host, hostId }: DotCMSConfigurationParams\n): Promise<string> {\n if (!host) {\n throw new Error('Please pass the DotCMS instance in the initDotCMS initialization')\n }\n\n const newUrl = new URL(`${host}${url}`);\n const paramsKeys = params ? Object.keys(params) : [];\n\n if (paramsKeys.length) {\n paramsKeys.map((key: string) => {\n newUrl.searchParams.append(key, params[key]);\n })\n }\n\n if (hostId) {\n newUrl.searchParams.append('host_id', hostId);\n }\n\n return `${newUrl.toString()}`;\n}\n\nfunction shouldAppendBody(params: DotAppHttpRequestParams): boolean {\n return params.method === 'POST' && !!params.body;\n}\n\nfunction getOpts(\n params: DotAppHttpRequestParams,\n config: DotCMSConfigurationParams\n): { [key: string]: any } {\n let opts: { [key: string]: any } = {\n method: params.method || 'GET',\n headers: {\n Authorization: `Bearer ${config.token}`,\n 'Content-type': 'application/json'\n }\n };\n\n if (shouldAppendBody(params)) {\n opts = {\n ...opts,\n body: params.body\n };\n }\n\n return opts;\n}\n\nexport async function request(options: DotAppHttpRequestParams, config: DotCMSConfigurationParams) {\n const url = await getUrl(options, config);\n const opts = getOpts(options, config);\n return fetch(url, opts);\n}\n","import { request } from './request';\nimport { DotCMSConfigurationParams, DotAppHttpRequestParams } from '../models';\n\nexport class DotCMSHttpClient {\n private _config: DotCMSConfigurationParams;\n\n constructor(config: DotCMSConfigurationParams) {\n this._config = config;\n }\n\n public request(params: DotAppHttpRequestParams): Promise<any> {\n return request(params, this._config);\n }\n}\n","import { DotCMSHttpClient } from '../utils/DotCMSHttpClient';\nimport { DotCMSContent, DotCMSContentQuery, DotCMSError } from '../models';\n\nfunction populateQueryUrl(params: DotCMSContentQuery): string {\n let url = '';\n\n const attrs = {\n depth: `/depth/${params.options.depth}`,\n limit: `/limit/${params.options.limit}`,\n offset: `/offset/${params.options.offset}`,\n orderBy: `/orderby/${params.options.orderBy}`\n };\n\n if (params.queryParams) {\n for (const key of Object.keys(params.queryParams)) {\n url += `+${key}:${params.queryParams[key]}%20`;\n }\n }\n\n for (const key of Object.keys(params.options)) {\n url += attrs[key];\n }\n\n return url;\n}\n\n/**\n * Query/Save/Publish the information of DotCMS Content\n *\n */\nexport class DotApiContent {\n private dotCMSHttpClient: DotCMSHttpClient;\n\n constructor(httpClient: DotCMSHttpClient) {\n this.dotCMSHttpClient = httpClient;\n }\n\n query(params: DotCMSContentQuery): Promise<Response> {\n const url = `/api/content/query/+contentType:${params.contentType}%20${populateQueryUrl(\n params\n )}`;\n return this.doRequest(url, null, 'GET');\n }\n\n save<Content extends DotCMSContent>(params: Content): Promise<Response> {\n return this.doRequest('/api/content/save/1', params);\n }\n\n publish<Content extends DotCMSContent>(params: Content): Promise<Response> {\n return this.doRequest('/api/content/publish/1', params);\n }\n\n private async doRequest<Content extends DotCMSContent>(\n url: string,\n params?: Content,\n httpMethod = 'POST'\n ): Promise<Response> {\n const response = await this.dotCMSHttpClient.request({\n url,\n method: httpMethod,\n body: params ? JSON.stringify(params) : ''\n });\n\n if (response.status !== 200) {\n throw <DotCMSError>{\n message: await response.text(),\n statusCode: response.status\n };\n }\n\n return response;\n }\n}\n","import { DotCMSHttpClient } from '../utils/DotCMSHttpClient';\nimport { DotCMSError } from '../models';\nimport { DotCMSContentTypeLayoutRow, DotCMSContentType } from '@dotcms/dotcms-models';\n\n/**\n * Get the information of DotCMS contentTypes\n *\n */\nexport class DotApiContentType {\n private dotCMSHttpClient: DotCMSHttpClient;\n\n constructor(httpClient: DotCMSHttpClient) {\n this.dotCMSHttpClient = httpClient;\n }\n\n async get(contentTypeId): Promise<DotCMSContentType> {\n const response = await this.dotCMSHttpClient.request({\n url: `/api/v1/contenttype/id/${contentTypeId}`\n });\n\n if (response.status !== 200) {\n throw <DotCMSError>{\n message: await response.text(),\n statusCode: response.status\n };\n }\n\n const data = await response.json();\n return data.entity;\n }\n\n getLayout(contentTypeId): Promise<DotCMSContentTypeLayoutRow[]> {\n return this.get(contentTypeId).then((contentType: DotCMSContentType) => {\n return contentType.layout;\n });\n }\n}\n","import { DotCMSFormConfig } from '../models';\nimport { DotApiContentType } from './DotApiContentType';\n\n// This import allow us to use the type for the form: HTMLDotFormElement\nimport { DotCMSContentType } from '@dotcms/dotcms-models';\n\n/**\n * Creates and provide methods to render a DotCMS Form\n *\n */\nexport class DotApiForm {\n constructor(\n private dotApiContentType: DotApiContentType,\n private formConfig: DotCMSFormConfig\n ) {}\n\n /**\n * Render form on provided html element\n * @memberof DotApiForm\n */\n async get(): Promise<DotCMSContentType> {\n return this.dotApiContentType.get(this.formConfig.identifier);\n }\n}\n","import { DotApiAuthorization } from './lib/api/DotApiAuthorization';\nimport { DotApiConfiguration } from './lib/api/DotApiConfiguration';\nimport { DotApiElasticSearch } from './lib/api/DotApiElasticSearch';\nimport { DotApiEvent } from './lib/api/DotApiEvent';\nimport { DotApiLanguage } from './lib/api/DotApiLanguage';\nimport { DotApiNavigation } from './lib/api/DotApiNavigation';\nimport { DotApiPage } from './lib/api/DotApiPage';\nimport { DotApiSite } from './lib/api/DotApiSite';\nimport { DotApiWidget } from './lib/api/DotApiWidget';\nimport { DotCMSHttpClient } from './lib/utils/DotCMSHttpClient';\nimport { DotCMSConfigurationParams, DotCMSFormConfig } from './lib/models';\nimport { DotApiContent } from './lib/api/DotApiContent';\nimport { DotApiContentType } from './lib/api/DotApiContentType';\nimport { DotApiForm } from './lib/api/DotApiForm';\n\nexport interface DotCMSApp {\n auth: DotApiAuthorization;\n content: DotApiContent;\n contentType: DotApiContentType;\n esSearch: DotApiElasticSearch;\n event: DotApiEvent;\n nav: DotApiNavigation;\n page: DotApiPage;\n site: DotApiSite;\n form: (formConfig: DotCMSFormConfig, win?: Window) => DotApiForm;\n widget: DotApiWidget;\n config: DotApiConfiguration;\n language: DotApiLanguage;\n httpClient: DotCMSHttpClient;\n}\n\nexport const initDotCMS = (config: DotCMSConfigurationParams): DotCMSApp => {\n const httpClient = new DotCMSHttpClient(config);\n const apiConfig = new DotApiConfiguration(httpClient);\n const apiLanguage = new DotApiLanguage(apiConfig);\n const content = new DotApiContent(httpClient);\n const dotApiContentType = new DotApiContentType(httpClient);\n\n return {\n auth: new DotApiAuthorization(),\n config: apiConfig,\n content: content,\n contentType: new DotApiContentType(httpClient),\n esSearch: new DotApiElasticSearch(httpClient),\n event: new DotApiEvent(),\n form: (formConfig: DotCMSFormConfig) => new DotApiForm(dotApiContentType, formConfig),\n language: apiLanguage,\n nav: new DotApiNavigation(httpClient),\n page: new DotApiPage(httpClient, apiLanguage),\n site: new DotApiSite(httpClient),\n widget: new DotApiWidget(httpClient),\n httpClient\n };\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}