@esri/solution-velocity 6.0.4-alpha.0 → 6.1.0-alpha.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 (31) hide show
  1. package/package.json +3 -3
  2. package/dist/cjs/helpers/get-velocity-dependencies.d.ts +0 -57
  3. package/dist/cjs/helpers/get-velocity-dependencies.js +0 -120
  4. package/dist/cjs/helpers/get-velocity-dependencies.js.map +0 -1
  5. package/dist/cjs/helpers/velocity-helpers.d.ts +0 -244
  6. package/dist/cjs/helpers/velocity-helpers.js +0 -567
  7. package/dist/cjs/helpers/velocity-helpers.js.map +0 -1
  8. package/dist/cjs/helpers/velocity-templatize.d.ts +0 -71
  9. package/dist/cjs/helpers/velocity-templatize.js +0 -114
  10. package/dist/cjs/helpers/velocity-templatize.js.map +0 -1
  11. package/dist/cjs/index.d.ts +0 -17
  12. package/dist/cjs/index.js +0 -22
  13. package/dist/cjs/index.js.map +0 -1
  14. package/dist/cjs/velocity-processor.d.ts +0 -60
  15. package/dist/cjs/velocity-processor.js +0 -134
  16. package/dist/cjs/velocity-processor.js.map +0 -1
  17. package/dist/esm/helpers/get-velocity-dependencies.d.ts +0 -57
  18. package/dist/esm/helpers/get-velocity-dependencies.js +0 -113
  19. package/dist/esm/helpers/get-velocity-dependencies.js.map +0 -1
  20. package/dist/esm/helpers/velocity-helpers.d.ts +0 -244
  21. package/dist/esm/helpers/velocity-helpers.js +0 -545
  22. package/dist/esm/helpers/velocity-helpers.js.map +0 -1
  23. package/dist/esm/helpers/velocity-templatize.d.ts +0 -71
  24. package/dist/esm/helpers/velocity-templatize.js +0 -106
  25. package/dist/esm/helpers/velocity-templatize.js.map +0 -1
  26. package/dist/esm/index.d.ts +0 -17
  27. package/dist/esm/index.js +0 -18
  28. package/dist/esm/index.js.map +0 -1
  29. package/dist/esm/velocity-processor.d.ts +0 -60
  30. package/dist/esm/velocity-processor.js +0 -128
  31. package/dist/esm/velocity-processor.js.map +0 -1
@@ -1,106 +0,0 @@
1
- /** @license
2
- * Copyright 2021 Esri
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { getProp, setProp } from "@esri/solution-common";
17
- /**
18
- * Updates the template by adding variables for key properties that will
19
- * need to be swapped when deploying
20
- *
21
- * @param template velocity item info that should be templatized
22
- *
23
- * @returns void
24
- *
25
- */
26
- export function templatizeVelocity(template) {
27
- _templatize(template, "data.sources", _templatizeDatasources);
28
- _templatize(template, "data.feeds", _templatizeFeeds);
29
- _templatize(template, "data.feed", _templatizeFeed);
30
- }
31
- /**
32
- * Generic wrapper for the templatize functions that
33
- * will get and set the key properties
34
- *
35
- * @param template velocity item info that should be templatized
36
- * @param prop the prop path to evaluate and set with a templatized variable
37
- * @param fn the templatize function that should be called for this prop
38
- *
39
- * @returns void
40
- *
41
- * @private
42
- */
43
- export function _templatize(template, prop, fn) {
44
- const obj = getProp(template, prop);
45
- /* istanbul ignore else */
46
- if (obj) {
47
- setProp(template, prop, fn(obj));
48
- }
49
- }
50
- /**
51
- * Updates the template by adding variables for the itemId and the label
52
- * The label controls the name and must be unique for the org.
53
- *
54
- * @param feeds array of velocity feeds that should be templatized
55
- *
56
- * @returns The updated list of feed objects with templatized id and label
57
- *
58
- * @private
59
- */
60
- export function _templatizeFeeds(feeds) {
61
- return feeds.map((feed) => {
62
- feed.label = feed.label && feed.id ? `{{${feed.id}.label}}` : feed.label;
63
- feed.id = feed.id ? `{{${feed.id}.itemId}}` : feed.id;
64
- return feed;
65
- });
66
- }
67
- /**
68
- * Updates the portal item id and feature layer id variables for the feed properties.
69
- *
70
- * @param feed the feed object from the item
71
- *
72
- * @returns the updated feed object with templatized portalItemId and layer id
73
- *
74
- * @private
75
- */
76
- export function _templatizeFeed(feed) {
77
- let id = getProp(feed, "properties.feature-layer.portalItemId");
78
- /* istanbul ignore else */
79
- if (feed.properties) {
80
- /* istanbul ignore else */
81
- if (feed.properties["feature-layer.portalItemId"]) {
82
- id = feed.properties["feature-layer.portalItemId"];
83
- feed.properties["feature-layer.portalItemId"] = `{{${id}.itemId}}`;
84
- }
85
- /* istanbul ignore else */
86
- if (id && feed.properties.hasOwnProperty("feature-layer.layerId")) {
87
- const flId = feed.properties["feature-layer.layerId"];
88
- feed.properties["feature-layer.layerId"] = `{{${id}.layer${flId}.layerId}}`;
89
- }
90
- }
91
- return feed;
92
- }
93
- /**
94
- * Velocity datasources share the same props as feeds so they can leverage
95
- * the same templatize function
96
- *
97
- * @param dataSources array of data sources from the item
98
- *
99
- * @returns the updated dataSources object with templatized ids and labels
100
- *
101
- * @private
102
- */
103
- export function _templatizeDatasources(dataSources) {
104
- return dataSources.map((ds) => _templatizeFeed(ds));
105
- }
106
- //# sourceMappingURL=velocity-templatize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"velocity-templatize.js","sourceRoot":"","sources":["../../../src/helpers/velocity-templatize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAiB,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAExE;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAuB;IACxD,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,sBAAsB,CAAC,CAAC;IAC9D,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;IACtD,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,QAAuB,EAAE,IAAY,EAAE,EAAsB;IACvF,MAAM,GAAG,GAAQ,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzC,0BAA0B;IAC1B,IAAI,GAAG,EAAE;QACP,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAClC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAY;IAC3C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACzE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,IAAS;IACvC,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,uCAAuC,CAAC,CAAC;IAChE,0BAA0B;IAC1B,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,0BAA0B;QAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,EAAE;YACjD,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;SACpE;QACD,0BAA0B;QAC1B,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,uBAAuB,CAAC,EAAE;YACjE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,GAAG,KAAK,EAAE,SAAS,IAAI,YAAY,CAAC;SAC7E;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAkB;IACvD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
@@ -1,17 +0,0 @@
1
- /** @license
2
- * Copyright 2021 Esri
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import * as VelocityProcessor from "./velocity-processor";
17
- export { VelocityProcessor };
package/dist/esm/index.js DELETED
@@ -1,18 +0,0 @@
1
- /** @license
2
- * Copyright 2021 Esri
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import * as VelocityProcessor from "./velocity-processor";
17
- export { VelocityProcessor };
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,iBAAiB,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,60 +0,0 @@
1
- /** @license
2
- * Copyright 2021 Esri
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- /**
17
- * Manages the creation and deployment of velocity item types.
18
- *
19
- * @module velocity
20
- */
21
- import { UserSession, IItemProgressCallback, IItemTemplate, ICreateItemFromTemplateResponse } from "@esri/solution-common";
22
- /**
23
- * Convert a Velocity item into a Template
24
- *
25
- * @param itemInfo The basic item info
26
- * @param destAuthentication Credentials for requests to the destination organization
27
- * @param srcAuthentication Credentials for requests to source items
28
- * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
29
- *
30
- * @returns a promise that will resolve the constructed IItemTemplate from the input itemInfo
31
- *
32
- */
33
- export declare function convertItemToTemplate(itemInfo: any, destAuthentication: UserSession, srcAuthentication: UserSession, templateDictionary: any): Promise<IItemTemplate>;
34
- /**
35
- * Create Velocity analytics and feeds from a Template
36
- *
37
- * @param template The template for the volocity items
38
- * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
39
- * @param destinationAuthentication Credentials for the deployment requests
40
- * @param itemProgressCallback Function for reporting progress updates from type-specific template handlers
41
- *
42
- * @returns a promise that will resolve with the new item info, id, type, and postProcess flag
43
- *
44
- */
45
- export declare function createItemFromTemplate(template: IItemTemplate, templateDictionary: any, destinationAuthentication: UserSession, itemProgressCallback: IItemProgressCallback): Promise<ICreateItemFromTemplateResponse>;
46
- /**
47
- * Velocity post-processing actions
48
- *
49
- * Move all velocity items to the deployment folder.
50
- *
51
- * @param {string} itemId The item ID
52
- * @param {string} type The template type
53
- * @param {any[]} itemInfos Array of \{id: 'ef3', type: 'Web Map'\} objects
54
- * @param {IItemTemplate} template The item template
55
- * @param {IItemTemplate[]} templates The full collection of item templates
56
- * @param {any} templateDictionary Hash of facts such as the folder id for the deployment
57
- * @param {UserSession} authentication The destination session info
58
- * @returns Promise resolving to successfulness of update
59
- */
60
- export declare function postProcess(itemId: string, type: string, itemInfos: any[], template: IItemTemplate, templates: IItemTemplate[], templateDictionary: any, authentication: UserSession): Promise<any>;
@@ -1,128 +0,0 @@
1
- /** @license
2
- * Copyright 2021 Esri
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- /**
17
- * Manages the creation and deployment of velocity item types.
18
- *
19
- * @module velocity
20
- */
21
- import { EItemProgressStatus, generateEmptyCreationResponse, createInitializedItemTemplate, fail, moveItem, removeItem, updateVelocityReferences, updateItem, } from "@esri/solution-common";
22
- import { templatizeVelocity } from "./helpers/velocity-templatize";
23
- import { getVelocityDependencies } from "./helpers/get-velocity-dependencies";
24
- import { cleanDataSourcesAndFeeds, getVelocityUrl, postVelocityData } from "./helpers/velocity-helpers";
25
- /**
26
- * Convert a Velocity item into a Template
27
- *
28
- * @param itemInfo The basic item info
29
- * @param destAuthentication Credentials for requests to the destination organization
30
- * @param srcAuthentication Credentials for requests to source items
31
- * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
32
- *
33
- * @returns a promise that will resolve the constructed IItemTemplate from the input itemInfo
34
- *
35
- */
36
- export function convertItemToTemplate(itemInfo, destAuthentication, srcAuthentication, templateDictionary) {
37
- const template = createInitializedItemTemplate(itemInfo);
38
- return getVelocityUrl(srcAuthentication, templateDictionary, itemInfo.type, itemInfo.id).then((url) => {
39
- if (url) {
40
- return fetch(url)
41
- .then((data) => data.json())
42
- .then((data_json) => {
43
- template.item.title = data_json.label;
44
- template.data = data_json;
45
- return getVelocityDependencies(template, srcAuthentication).then((deps) => {
46
- template.dependencies = deps;
47
- cleanDataSourcesAndFeeds(template, templateDictionary.velocityUrl);
48
- templatizeVelocity(template);
49
- template.item = updateVelocityReferences(template.item, template.type, templateDictionary);
50
- return Promise.resolve(template);
51
- });
52
- });
53
- }
54
- else {
55
- // In case the org used to have velocity and they still have items
56
- return Promise.reject("Velocity NOT Supported by Organization");
57
- }
58
- }, (e) => Promise.reject(fail(e)));
59
- }
60
- /**
61
- * Create Velocity analytics and feeds from a Template
62
- *
63
- * @param template The template for the volocity items
64
- * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
65
- * @param destinationAuthentication Credentials for the deployment requests
66
- * @param itemProgressCallback Function for reporting progress updates from type-specific template handlers
67
- *
68
- * @returns a promise that will resolve with the new item info, id, type, and postProcess flag
69
- *
70
- */
71
- export function createItemFromTemplate(template, templateDictionary, destinationAuthentication, itemProgressCallback) {
72
- // let the progress system know we've started...
73
- const startStatus = itemProgressCallback(template.itemId, EItemProgressStatus.Started, 0);
74
- // and if it returned false, just resolve out
75
- /* istanbul ignore else */
76
- if (!startStatus) {
77
- return Promise.resolve(generateEmptyCreationResponse(template.type));
78
- }
79
- const orgId = template.itemId;
80
- return postVelocityData(destinationAuthentication, template, template.data, templateDictionary).then((result) => {
81
- const finalStatus = itemProgressCallback(orgId, EItemProgressStatus.Finished, template.estimatedDeploymentCostFactor || 2, result.id);
82
- if (!finalStatus) {
83
- return removeItem(result.id, destinationAuthentication).then(() => Promise.resolve(generateEmptyCreationResponse(template.type)), () => Promise.resolve(generateEmptyCreationResponse(template.type)));
84
- }
85
- else {
86
- const response = {
87
- item: {
88
- ...template,
89
- ...result,
90
- },
91
- id: result.item.id,
92
- type: template.type,
93
- postProcess: true,
94
- };
95
- response.item.itemId = result.item.id;
96
- return response;
97
- }
98
- });
99
- }
100
- /**
101
- * Velocity post-processing actions
102
- *
103
- * Move all velocity items to the deployment folder.
104
- *
105
- * @param {string} itemId The item ID
106
- * @param {string} type The template type
107
- * @param {any[]} itemInfos Array of \{id: 'ef3', type: 'Web Map'\} objects
108
- * @param {IItemTemplate} template The item template
109
- * @param {IItemTemplate[]} templates The full collection of item templates
110
- * @param {any} templateDictionary Hash of facts such as the folder id for the deployment
111
- * @param {UserSession} authentication The destination session info
112
- * @returns Promise resolving to successfulness of update
113
- */
114
- export function postProcess(itemId, type, itemInfos, template, templates, templateDictionary, authentication) {
115
- const itemUpdate = itemInfos.filter((ii) => ii.id === itemId);
116
- const item = itemUpdate[0].item.item;
117
- delete item.url;
118
- delete item.origUrl;
119
- return updateItem(item, authentication).then(() => {
120
- return moveItem({
121
- owner: authentication.username,
122
- itemId,
123
- folderId: templateDictionary.folderId,
124
- authentication,
125
- });
126
- });
127
- }
128
- //# sourceMappingURL=velocity-processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"velocity-processor.js","sourceRoot":"","sources":["../../src/velocity-processor.ts"],"names":[],"mappings":"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"}