@esri/solution-velocity 6.0.5-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,545 +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 { getVelocityUrlBase, replaceInTemplate, getProp, fail, BASE_NAMES, PROP_NAMES, } from "@esri/solution-common";
17
- /**
18
- * Common function to build urls for reading and interacting with the velocity api
19
- *
20
- *
21
- * @param authentication Credentials for the requests
22
- * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
23
- * @param type The type of velocity item we are constructing a url for
24
- * @param id Optional The id of the velocity item we are constructing a url for
25
- * @param isDeploy Optional Is this being constructed as a part of deployment
26
- * @param urlPrefix Optional prefix args necessary for some url construction
27
- * @param urlSuffix Optional suffix args necessary for some url construction
28
- *
29
- * @returns a promise that will resolve the constructed url
30
- *
31
- */
32
- export function getVelocityUrl(authentication, templateDictionary, type, id = "", isDeploy = false, urlPrefix = "", urlSuffix = "") {
33
- return getVelocityUrlBase(authentication, templateDictionary).then((url) => {
34
- if (url) {
35
- const _type = type === "Real Time Analytic"
36
- ? "analytics/realtime"
37
- : type === "Big Data Analytic"
38
- ? "analytics/bigdata"
39
- : type.toLowerCase();
40
- const suffix = urlSuffix ? `/${urlSuffix}` : "";
41
- const prefix = urlPrefix ? `/${urlPrefix}` : "";
42
- return Promise.resolve(isDeploy
43
- ? `${url}/iot/${_type}${prefix}${suffix}`
44
- : id
45
- ? `${url}/iot/${_type}${prefix}/${id}${suffix}/?f=json&token=${authentication.token}`
46
- : `${url}/iot/${_type}${prefix}${suffix}/?f=json&token=${authentication.token}`);
47
- }
48
- else {
49
- return Promise.resolve(url);
50
- }
51
- });
52
- }
53
- /**
54
- * Handles the creation of velocity items.
55
- *
56
- * @param authentication Credentials for the requests
57
- * @param template The current itemTemplate that is being used for deployment
58
- * @param data The velocity item data used to create the items.
59
- * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
60
- * @param autoStart This can be leveraged to start certain velocity items after they are created.
61
- *
62
- * @returns a promise that will resolve an object containing the item, id, type, and post process flag
63
- *
64
- */
65
- export function postVelocityData(authentication, template, data, templateDictionary, autoStart = false) {
66
- return getVelocityUrl(authentication, templateDictionary, template.type, undefined, true).then((url) => {
67
- if (url) {
68
- return getTitle(authentication, data.label, url).then((titleInfo) => {
69
- const titles = titleInfo.titles;
70
- data.label = titleInfo.label;
71
- data.id = "";
72
- const body = replaceInTemplate(data, templateDictionary);
73
- const dataOutputs = (data.outputs ? data.outputs : data.output ? [data.output] : []).map((o) => {
74
- return {
75
- id: o.id,
76
- name: o.properties[`${o.name}.name`],
77
- };
78
- });
79
- const feeds = (body.feeds ? body.feeds : body.feed ? [body.feed] : []).map((o) => {
80
- return {
81
- id: o.id ? o.id : o.properties[`${o.name}.portalItemId`] || "",
82
- name: o.label ? o.label : data.label,
83
- };
84
- });
85
- return _validateOutputs(authentication, templateDictionary, template.type, body, titles, dataOutputs, feeds).then((updatedBody) => {
86
- return _fetch(authentication, url, "POST", updatedBody).then((rr) => {
87
- template.item.url = `${url}/${rr.id}`;
88
- template.item.title = data.label;
89
- // Update the template dictionary
90
- templateDictionary[template.itemId]["url"] = template.item.url;
91
- templateDictionary[template.itemId]["label"] = data.label;
92
- templateDictionary[template.itemId]["itemId"] = rr.id;
93
- const finalResult = {
94
- item: replaceInTemplate(template.item, templateDictionary),
95
- id: rr.id,
96
- type: template.type,
97
- postProcess: false,
98
- };
99
- if (autoStart) {
100
- return _validateAndStart(authentication, templateDictionary, template, rr.id).then(() => {
101
- return Promise.resolve(finalResult);
102
- });
103
- }
104
- else {
105
- return Promise.resolve(finalResult);
106
- }
107
- });
108
- });
109
- });
110
- }
111
- else {
112
- return Promise.reject(fail("Velocity NOT Supported by Organization"));
113
- }
114
- });
115
- }
116
- /**
117
- * Velocity item titles must be unique across the organization.
118
- * Check and ensure we set a unique title
119
- *
120
- * @param authentication Credentials for the requests
121
- * @param label The current label of the item from the solution template
122
- * @param url The base velocity url for checking status
123
- *
124
- * @returns a promise that will resolve a unique title
125
- *
126
- */
127
- export function getTitle(authentication, label, url) {
128
- return _fetch(authentication, `${url}StatusList?view=admin`, "GET").then((items) => {
129
- const titles = items && Array.isArray(items)
130
- ? items.map((item) => {
131
- return { title: item.label };
132
- })
133
- : [];
134
- return Promise.resolve({ label: getUniqueTitle(label, { titles }, "titles"), titles: titles.map((t) => t.title) });
135
- });
136
- }
137
- /**
138
- * Validate the data that will be used and handle any reported issues with the outputs.
139
- * The output names must be unique across the organization.
140
- *
141
- * This function will update the data arg that is passed in with a unique name.
142
- *
143
- * @param authentication Credentials for the requests
144
- * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
145
- * @param type The type of velocity item
146
- * @param data The data used to construct the velocity item
147
- * @param titles The list of know titles that exist in the org
148
- * @param dataOutputs The velocity items output objects
149
- * @param feeds The velocity items feed objects
150
- *
151
- * @returns a promise that will resolve the data object passed in with any necessary changes.
152
- *
153
- * @private
154
- */
155
- export function _validateOutputs(authentication, templateDictionary, type, data, titles, dataOutputs = [], feeds = []) {
156
- if (dataOutputs.length > 0 || feeds.length > 0) {
157
- return validate(authentication, templateDictionary, type, "", data).then((validateResults) => {
158
- const names = _validateMessages(validateResults);
159
- if (names.length > 0) {
160
- /* istanbul ignore else */
161
- if (dataOutputs.length > 0) {
162
- _updateDataOutput(dataOutputs, data, names);
163
- }
164
- /* istanbul ignore else */
165
- if (feeds.length > 0) {
166
- _updateFeed(feeds, data, names.concat(titles));
167
- }
168
- return _validateOutputs(authentication, templateDictionary, type, data, titles, dataOutputs, feeds);
169
- }
170
- else {
171
- return Promise.resolve(data);
172
- }
173
- });
174
- }
175
- else {
176
- return Promise.resolve(data);
177
- }
178
- }
179
- /**
180
- * Check the validate results for any name conflicts and store the conflicting names.
181
- *
182
- * @param validateResults The results object to check for name conflict errors
183
- *
184
- * @returns a list of names that already exist in the org
185
- *
186
- * @private
187
- */
188
- export function _validateMessages(validateResults) {
189
- let messages = getProp(validateResults, "validation.messages");
190
- const nodes = getProp(validateResults, "nodes");
191
- /* istanbul ignore else */
192
- if (nodes && Array.isArray(nodes)) {
193
- nodes.forEach((node) => {
194
- messages = messages.concat(getProp(node, "validation.messages") || []);
195
- });
196
- }
197
- let names = [];
198
- /* istanbul ignore else */
199
- if (messages && Array.isArray(messages)) {
200
- messages.forEach((message) => {
201
- // I don't see a way to ask for all output names that exist
202
- // velocityUrl + /outputs/ just gives you generic defaults not what currently exists
203
- const nameErrors = [
204
- "VALIDATION_ANALYTICS__MULTIPLE_CREATE_FEATURE_LAYER_OUTPUTS_REFERENCE_SAME_LAYER_NAME",
205
- "VALIDATION_ANALYTICS__MULTIPLE_CREATE_STREAM_LAYER_OUTPUTS_REFERENCE_SAME_LAYER_NAME",
206
- "ITEM_MANAGER__CREATE_ANALYTIC_FAILED_DUPLICATE_OUTPUT_NAMES_IN_ORGANIZATION_NOT_ALLOWED",
207
- "ITEM_MANAGER__CREATE_BIG_DATA_ANALYTIC_FAILED_DUPLICATE_NAMES_NOT_ALLOWED",
208
- "ITEM_MANAGER__CREATE_REAL_TIME_ANALYTIC_FAILED_DUPLICATE_NAMES_NOT_ALLOWED",
209
- "ITEM_MANAGER__CREATE_FEED_FAILED_DUPLICATE_NAME",
210
- ];
211
- // The names returned here seem to replace " " with "_" so they do not match exactly
212
- /* istanbul ignore else */
213
- if (nameErrors.indexOf(message.key) > -1) {
214
- names = names.concat(message.args);
215
- }
216
- });
217
- }
218
- return names;
219
- }
220
- /**
221
- * Updates the feed object with a new name when validation fails.
222
- *
223
- * @param feeds The feed objects from the velocity item.
224
- * @param data The full data object used for deploying the velocity item.
225
- * @param names The names that failed due to duplicate error in validation.
226
- *
227
- * @private
228
- */
229
- export function _updateFeed(feeds, data, names) {
230
- feeds.forEach((f) => {
231
- const update = _getOutputLabel(names, f);
232
- /* istanbul ignore else */
233
- if (update) {
234
- data.label = update.label;
235
- f.name = update.label;
236
- }
237
- });
238
- }
239
- /**
240
- * Updates the data object with a new name when validation fails.
241
- *
242
- * @param dataOutputs The data output objects from the velocity item.
243
- * @param data The full data object used for deploying the velocity item.
244
- * @param names The names that failed due to duplicate error in validation.
245
- *
246
- * @private
247
- */
248
- export function _updateDataOutput(dataOutputs, data, names) {
249
- dataOutputs.forEach((dataOutput) => {
250
- const update = _getOutputLabel(names, dataOutput);
251
- /* istanbul ignore else */
252
- if (update) {
253
- const _outputs = (data.outputs ? data.outputs : data.output ? [data.output] : []).map((_dataOutput) => {
254
- /* istanbul ignore else */
255
- if (_dataOutput.id === update.id) {
256
- /* istanbul ignore else */
257
- if (_dataOutput.properties) {
258
- const nameProp = `${_dataOutput.name}.name`;
259
- /* istanbul ignore else */
260
- if (Object.keys(_dataOutput.properties).indexOf(nameProp) > -1) {
261
- _dataOutput.properties[nameProp] = update.label;
262
- }
263
- }
264
- }
265
- return _dataOutput;
266
- });
267
- /* istanbul ignore else */
268
- if (data.outputs) {
269
- data.outputs = _outputs;
270
- }
271
- /* istanbul ignore else */
272
- if (data.output) {
273
- data.output = _outputs[0];
274
- }
275
- }
276
- });
277
- }
278
- /**
279
- * Get a unique label for the item.
280
- *
281
- * @param names The names that failed due to duplicate error in validation.
282
- * @param dataOutput The current data output that is being evaluated.
283
- *
284
- * @returns an object with a unique label and the outputs id when a name
285
- * conflict is found...otherwise returns undefined
286
- *
287
- * @private
288
- */
289
- export function _getOutputLabel(names, dataOutput) {
290
- const titles = names.map((name) => {
291
- return { title: name };
292
- });
293
- const label = getUniqueTitle(dataOutput.name, { titles }, "titles");
294
- return label !== dataOutput.name
295
- ? {
296
- label,
297
- id: dataOutput.id,
298
- }
299
- : undefined;
300
- }
301
- /**
302
- * Will return the provided title if it does not exist as a property
303
- * in one of the objects at the defined path. Otherwise the title will
304
- * have a numerical value attached.
305
- *
306
- * This is based on "getUniqueTitle" from common but adds the "_" replacement check for velocity names.
307
- * Could switch to using common if Velocity has a way to get a list of all names that are already used.
308
- *
309
- * @param title The root title to test
310
- * @param templateDictionary Hash of the facts
311
- * @param path to the objects to evaluate for potantial name clashes
312
- *
313
- * @returns string The unique title to use
314
- *
315
- */
316
- export function getUniqueTitle(title, templateDictionary, path) {
317
- title = title ? title.trim() : "_";
318
- const objs = getProp(templateDictionary, path) || [];
319
- const titles = objs.map((obj) => {
320
- return obj.title;
321
- });
322
- let newTitle = title;
323
- let i = 0;
324
- // replace added for velocitcy
325
- // validation seems to add "_" to names listed in outputs..so no way to compare without hacking the name
326
- while (titles.indexOf(newTitle) > -1 || titles.indexOf(newTitle.replace(/ /g, "_")) > -1) {
327
- i++;
328
- newTitle = title + " " + i;
329
- }
330
- return newTitle;
331
- }
332
- /**
333
- * Start the item if validation passes and the item is executable.
334
- *
335
- * @param authentication Credentials for the requests
336
- * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
337
- * @param template the item template that has the details for deployment
338
- * @param id the new id for the velocity item that was deployed
339
- *
340
- * @returns a promise that will resolve with the validation results
341
- * or the start results when validation indicates the item is executable
342
- *
343
- * @private
344
- */
345
- export function _validateAndStart(authentication, templateDictionary, template, id) {
346
- return validate(authentication, templateDictionary, template.type, id).then((validateResult) => {
347
- if (validateResult.executable) {
348
- return start(authentication, templateDictionary, template.type, id);
349
- }
350
- else {
351
- return Promise.resolve(validateResult);
352
- }
353
- });
354
- }
355
- /**
356
- * Validate the velocity item.
357
- * Used to help find and handle duplicate name errors.
358
- *
359
- * @param authentication Credentials for the requests
360
- * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
361
- * @param type The type of velocity item we are constructing a url for
362
- * @param id? Optional The id of the velocity item we are constructing a url for
363
- * @param body? Optional the request body to validate.
364
- *
365
- * @returns a promise that will resolve with an object containing messages
366
- * indicating any issues found when validating such as name conflict errors
367
- *
368
- */
369
- export function validate(authentication, templateDictionary, type, id, body) {
370
- // /iot/feed/validate/{id}/
371
- // /iot/analytics/realtime/validate/{id}/
372
- return getVelocityUrl(authentication, templateDictionary, type, id, false, "validate", "").then((url) => {
373
- return _fetch(authentication, url, "POST", body).then((result) => {
374
- return Promise.resolve(result);
375
- });
376
- });
377
- }
378
- /**
379
- * Start the given velocity item that has been deployed.
380
- *
381
- * @param authentication Credentials for the requests
382
- * @param templateDictionary Hash of facts: folder id, org URL, adlib replacements
383
- * @param type The type of velocity item we are constructing a url for
384
- * @param id? Optional The id of the velocity item we are constructing a url for
385
- *
386
- * @returns a promise that will resolve with the result of the start call
387
- *
388
- */
389
- export function start(authentication, templateDictionary, type, id) {
390
- // /iot/feed/{id}/start/
391
- // /iot/analytics/realtime/{id}/start/
392
- return getVelocityUrl(authentication, templateDictionary, type, id, false, "", "start").then((url) => {
393
- return _fetch(authentication, url, "GET").then((result) => {
394
- return Promise.resolve(result);
395
- });
396
- });
397
- }
398
- /**
399
- * Gets the required request options for requests to the velocity API.
400
- *
401
- * @param authentication Credentials for the requests
402
- * @param method Indicate if "GET" or "POST"
403
- *
404
- * @returns generic request options used for various calls to velocity api
405
- *
406
- * @private
407
- */
408
- export function _getRequestOpts(authentication, method) {
409
- return {
410
- headers: {
411
- "Accept": "application/json",
412
- "Content-Type": "application/json",
413
- "Authorization": "token=" + authentication.token,
414
- },
415
- method,
416
- };
417
- }
418
- /**
419
- * Generic fetch function for making calls to the velocity API.
420
- *
421
- * @param authentication Credentials for the requests
422
- * @param url The url from the velocity API to handle reading and writing
423
- * @param method The method for the request "GET" or "POST"
424
- * @param body The body for POST requests
425
- *
426
- * @returns a promise that will resolve with the result of the fetch call
427
- *
428
- * @private
429
- */
430
- export function _fetch(authentication, url, method, // GET or POST
431
- body) {
432
- const requestOpts = _getRequestOpts(authentication, method);
433
- /* istanbul ignore else */
434
- if (body) {
435
- requestOpts.body = JSON.stringify(body);
436
- }
437
- return fetch(url, requestOpts).then((r) => Promise.resolve(r.json()));
438
- }
439
- /**
440
- * Remove key properties if the dependency was removed due to having the "IoTFeatureLayer" typeKeyword
441
- * This function will update the input template.
442
- *
443
- * @param template The template that for the velocity item
444
- *
445
- */
446
- export function cleanDataSourcesAndFeeds(template, velocityUrl) {
447
- const dependencies = template.dependencies;
448
- [
449
- getProp(template, "data.sources") ? template.data.sources : [],
450
- getProp(template, "data.source") ? [template.data.source] : [],
451
- getProp(template, "data.feeds") ? template.data.feeds : [],
452
- getProp(template, "data.feed") ? [template.data.feed] : [],
453
- ].forEach((d) => _removeIdProps(d, dependencies, velocityUrl));
454
- [
455
- getProp(template, "data.outputs") ? template.data.outputs : [],
456
- getProp(template, "data.output") ? [template.data.output] : [],
457
- ].forEach((outputs) => _removeIdPropsAndSetName(outputs, dependencies));
458
- }
459
- /**
460
- * Remove key properties from the input source or feed
461
- *
462
- * @param sourcesOrFeeds The list of dataSources or feeds
463
- * @param dependencies The list of dependencies
464
- *
465
- * @private
466
- */
467
- export function _removeIdProps(sourcesOrFeeds, dependencies, velocityUrl) {
468
- sourcesOrFeeds.forEach((dataSource) => {
469
- const idProp = "feature-layer.portalItemId";
470
- const layerIdProp = "feature-layer.layerId";
471
- /* istanbul ignore else */
472
- if (dataSource.properties) {
473
- /* istanbul ignore else */
474
- if (dataSource.properties[idProp]) {
475
- const id = dataSource.properties[idProp];
476
- /* istanbul ignore else */
477
- if (id && dependencies.indexOf(id) < 0) {
478
- delete dataSource.properties[idProp];
479
- delete dataSource.properties[layerIdProp];
480
- }
481
- }
482
- const urlProp = "simulator.url";
483
- const url = dataSource.properties[urlProp];
484
- // only remove velocity based simulator urls
485
- // otherwise we will leave as is with no templatization
486
- /* istanbul ignore else */
487
- if (url && url.indexOf(velocityUrl) > -1) {
488
- delete dataSource.properties[urlProp];
489
- }
490
- }
491
- });
492
- }
493
- /**
494
- * Remove key properties from the outputs.
495
- *
496
- * @param outputs The list of outputs
497
- * @param dependencies The list of dependencies
498
- *
499
- * @private
500
- */
501
- export function _removeIdPropsAndSetName(outputs, dependencies) {
502
- outputs.forEach((output) => {
503
- /* istanbul ignore else */
504
- if (output.properties) {
505
- const names = getProp(output, "name") ? [output.name] : BASE_NAMES;
506
- names.forEach((n) => {
507
- PROP_NAMES.forEach((p) => _removeProp(output.properties, n + p, dependencies));
508
- });
509
- _updateName(output.properties);
510
- }
511
- });
512
- }
513
- /**
514
- * Generic helper function to remove key properties .
515
- *
516
- * @param props the list of props to update
517
- * @param prop the individual prop to remove
518
- * @param dependencies The list of dependencies
519
- *
520
- * @private
521
- */
522
- export function _removeProp(props, prop, dependencies) {
523
- const id = props[prop];
524
- /* istanbul ignore else */
525
- if (id && dependencies.indexOf(id) < 0) {
526
- delete props[prop];
527
- }
528
- }
529
- /**
530
- * Update the feature layer name to include the solution item id.
531
- *
532
- * @param props the list of props to update
533
- *
534
- * @private
535
- */
536
- export function _updateName(props) {
537
- ["feat-lyr-new.name", "stream-lyr-new.name", "feat-lyr-existing.name"].forEach((n) => {
538
- const name = props[n];
539
- /* istanbul ignore else */
540
- if (name && name.indexOf("{{solutionItemId}}") < 0) {
541
- props[n] = `${name}_{{solutionItemId}}`;
542
- }
543
- });
544
- }
545
- //# sourceMappingURL=velocity-helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"velocity-helpers.js","sourceRoot":"","sources":["../../../src/helpers/velocity-helpers.ts"],"names":[],"mappings":"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"}
@@ -1,71 +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 { IItemTemplate } 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 declare function templatizeVelocity(template: IItemTemplate): void;
27
- /**
28
- * Generic wrapper for the templatize functions that
29
- * will get and set the key properties
30
- *
31
- * @param template velocity item info that should be templatized
32
- * @param prop the prop path to evaluate and set with a templatized variable
33
- * @param fn the templatize function that should be called for this prop
34
- *
35
- * @returns void
36
- *
37
- * @private
38
- */
39
- export declare function _templatize(template: IItemTemplate, prop: string, fn: (arg: any) => void): void;
40
- /**
41
- * Updates the template by adding variables for the itemId and the label
42
- * The label controls the name and must be unique for the org.
43
- *
44
- * @param feeds array of velocity feeds that should be templatized
45
- *
46
- * @returns The updated list of feed objects with templatized id and label
47
- *
48
- * @private
49
- */
50
- export declare function _templatizeFeeds(feeds: any[]): any;
51
- /**
52
- * Updates the portal item id and feature layer id variables for the feed properties.
53
- *
54
- * @param feed the feed object from the item
55
- *
56
- * @returns the updated feed object with templatized portalItemId and layer id
57
- *
58
- * @private
59
- */
60
- export declare function _templatizeFeed(feed: any): any;
61
- /**
62
- * Velocity datasources share the same props as feeds so they can leverage
63
- * the same templatize function
64
- *
65
- * @param dataSources array of data sources from the item
66
- *
67
- * @returns the updated dataSources object with templatized ids and labels
68
- *
69
- * @private
70
- */
71
- export declare function _templatizeDatasources(dataSources: any[]): any;