@emuanalytics/flow-cli 1.3.31

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 (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +0 -0
  3. package/dist/commands/apikeys/create.js +144 -0
  4. package/dist/commands/apikeys/create.js.map +1 -0
  5. package/dist/commands/apikeys/delete.js +74 -0
  6. package/dist/commands/apikeys/delete.js.map +1 -0
  7. package/dist/commands/apikeys/list.js +53 -0
  8. package/dist/commands/apikeys/list.js.map +1 -0
  9. package/dist/commands/apikeys/metadata.js +59 -0
  10. package/dist/commands/apikeys/metadata.js.map +1 -0
  11. package/dist/commands/apikeys.js +13 -0
  12. package/dist/commands/apikeys.js.map +1 -0
  13. package/dist/commands/applications.js +13 -0
  14. package/dist/commands/applications.js.map +1 -0
  15. package/dist/commands/apps/create.js +167 -0
  16. package/dist/commands/apps/create.js.map +1 -0
  17. package/dist/commands/apps/delete.js +74 -0
  18. package/dist/commands/apps/delete.js.map +1 -0
  19. package/dist/commands/apps/export.js +94 -0
  20. package/dist/commands/apps/export.js.map +1 -0
  21. package/dist/commands/apps/import.js +119 -0
  22. package/dist/commands/apps/import.js.map +1 -0
  23. package/dist/commands/apps/list.js +54 -0
  24. package/dist/commands/apps/list.js.map +1 -0
  25. package/dist/commands/apps/metadata.js +61 -0
  26. package/dist/commands/apps/metadata.js.map +1 -0
  27. package/dist/commands/apps/update.js +110 -0
  28. package/dist/commands/apps/update.js.map +1 -0
  29. package/dist/commands/databases/create.js +190 -0
  30. package/dist/commands/databases/create.js.map +1 -0
  31. package/dist/commands/databases/delete.js +74 -0
  32. package/dist/commands/databases/delete.js.map +1 -0
  33. package/dist/commands/databases/list.js +52 -0
  34. package/dist/commands/databases/list.js.map +1 -0
  35. package/dist/commands/databases.js +13 -0
  36. package/dist/commands/databases.js.map +1 -0
  37. package/dist/commands/datasets/attributes.js +48 -0
  38. package/dist/commands/datasets/attributes.js.map +1 -0
  39. package/dist/commands/datasets/create.js +180 -0
  40. package/dist/commands/datasets/create.js.map +1 -0
  41. package/dist/commands/datasets/delete.js +74 -0
  42. package/dist/commands/datasets/delete.js.map +1 -0
  43. package/dist/commands/datasets/export.js +95 -0
  44. package/dist/commands/datasets/export.js.map +1 -0
  45. package/dist/commands/datasets/list.js +52 -0
  46. package/dist/commands/datasets/list.js.map +1 -0
  47. package/dist/commands/datasets/metadata.js +59 -0
  48. package/dist/commands/datasets/metadata.js.map +1 -0
  49. package/dist/commands/datasets/query.js +86 -0
  50. package/dist/commands/datasets/query.js.map +1 -0
  51. package/dist/commands/datasets/update.js +166 -0
  52. package/dist/commands/datasets/update.js.map +1 -0
  53. package/dist/commands/datasets.js +13 -0
  54. package/dist/commands/datasets.js.map +1 -0
  55. package/dist/commands/job.js +13 -0
  56. package/dist/commands/job.js.map +1 -0
  57. package/dist/commands/jobs/delete.js +74 -0
  58. package/dist/commands/jobs/delete.js.map +1 -0
  59. package/dist/commands/jobs/list.js +52 -0
  60. package/dist/commands/jobs/list.js.map +1 -0
  61. package/dist/commands/jobs/metadata.js +36 -0
  62. package/dist/commands/jobs/metadata.js.map +1 -0
  63. package/dist/commands/new.js +63 -0
  64. package/dist/commands/new.js.map +1 -0
  65. package/dist/commands/styles/create.js +130 -0
  66. package/dist/commands/styles/create.js.map +1 -0
  67. package/dist/commands/styles/delete.js +74 -0
  68. package/dist/commands/styles/delete.js.map +1 -0
  69. package/dist/commands/styles/edit.js +37 -0
  70. package/dist/commands/styles/edit.js.map +1 -0
  71. package/dist/commands/styles/list.js +51 -0
  72. package/dist/commands/styles/list.js.map +1 -0
  73. package/dist/commands/styles/metadata.js +61 -0
  74. package/dist/commands/styles/metadata.js.map +1 -0
  75. package/dist/commands/styles/view.js +37 -0
  76. package/dist/commands/styles/view.js.map +1 -0
  77. package/dist/commands/styles.js +13 -0
  78. package/dist/commands/styles.js.map +1 -0
  79. package/dist/commands/tiles/create.js +221 -0
  80. package/dist/commands/tiles/create.js.map +1 -0
  81. package/dist/commands/tiles/delete.js +74 -0
  82. package/dist/commands/tiles/delete.js.map +1 -0
  83. package/dist/commands/tiles/list.js +51 -0
  84. package/dist/commands/tiles/list.js.map +1 -0
  85. package/dist/commands/tiles/metadata.js +61 -0
  86. package/dist/commands/tiles/metadata.js.map +1 -0
  87. package/dist/commands/tiles/preview.js +33 -0
  88. package/dist/commands/tiles/preview.js.map +1 -0
  89. package/dist/commands/tiles/tilespec.js +44 -0
  90. package/dist/commands/tiles/tilespec.js.map +1 -0
  91. package/dist/commands/tiles/update.js +194 -0
  92. package/dist/commands/tiles/update.js.map +1 -0
  93. package/dist/commands/tiles.js +13 -0
  94. package/dist/commands/tiles.js.map +1 -0
  95. package/dist/commands/upload/list.js +51 -0
  96. package/dist/commands/upload/list.js.map +1 -0
  97. package/dist/commands/upload/upload.js +171 -0
  98. package/dist/commands/upload/upload.js.map +1 -0
  99. package/dist/commands/upload.js +13 -0
  100. package/dist/commands/upload.js.map +1 -0
  101. package/dist/commands/users/create.js +140 -0
  102. package/dist/commands/users/create.js.map +1 -0
  103. package/dist/commands/users/delete.js +74 -0
  104. package/dist/commands/users/delete.js.map +1 -0
  105. package/dist/commands/users/list.js +52 -0
  106. package/dist/commands/users/list.js.map +1 -0
  107. package/dist/commands/users/metadata.js +61 -0
  108. package/dist/commands/users/metadata.js.map +1 -0
  109. package/dist/commands/users/update.js +151 -0
  110. package/dist/commands/users/update.js.map +1 -0
  111. package/dist/commands/users.js +13 -0
  112. package/dist/commands/users.js.map +1 -0
  113. package/dist/commands/version.js +35 -0
  114. package/dist/commands/version.js.map +1 -0
  115. package/dist/create-app/create-app.js +147 -0
  116. package/dist/create-app/create-app.js.map +1 -0
  117. package/dist/create-app/download.js +52 -0
  118. package/dist/create-app/download.js.map +1 -0
  119. package/dist/create-app/starters.js +18 -0
  120. package/dist/create-app/starters.js.map +1 -0
  121. package/dist/create-app/unzip.js +89 -0
  122. package/dist/create-app/unzip.js.map +1 -0
  123. package/dist/create-app/utils.js +134 -0
  124. package/dist/create-app/utils.js.map +1 -0
  125. package/dist/create-app/version.js +9 -0
  126. package/dist/create-app/version.js.map +1 -0
  127. package/dist/index.js +71 -0
  128. package/dist/index.js.map +1 -0
  129. package/dist/style-server/app.js +119 -0
  130. package/dist/style-server/app.js.map +1 -0
  131. package/dist/style-server/index.js +97 -0
  132. package/dist/style-server/index.js.map +1 -0
  133. package/dist/utils/index.js +263 -0
  134. package/dist/utils/index.js.map +1 -0
  135. package/maputnik/app.8c54efadcc6633a431f7.js +64 -0
  136. package/maputnik/bundle-stats.html +53 -0
  137. package/maputnik/bundle-stats.json +93486 -0
  138. package/maputnik/favicon.ico +0 -0
  139. package/maputnik/fonts/Roboto-Medium.ttf +0 -0
  140. package/maputnik/fonts/Roboto-Regular.ttf +0 -0
  141. package/maputnik/index.html +131 -0
  142. package/maputnik/manifest.json +9 -0
  143. package/package.json +84 -0
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright © 2018 Emu Analytics
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
35
+ });
36
+ };
37
+ var __importDefault = (this && this.__importDefault) || function (mod) {
38
+ return (mod && mod.__esModule) ? mod : { "default": mod };
39
+ };
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.getMetadataKeyValues = exports.domainsFromString = exports.domainsToString = exports.extentFromString = exports.extentToString = exports.isValidExtent = exports.isNumeric = exports.resolveResource = exports.logObject = exports.logDetail = exports.logInfo = exports.logWarning = exports.logError = exports.log = void 0;
42
+ const emoji = __importStar(require("node-emoji"));
43
+ const table_1 = require("table");
44
+ const stringWidth = require('string-width');
45
+ const chalk_1 = __importDefault(require("chalk"));
46
+ const sync_1 = __importDefault(require("csv-stringify/lib/sync"));
47
+ const looseJSON = __importStar(require("loose-json"));
48
+ // tslint:disable-next-line:no-console
49
+ exports.log = console.log;
50
+ function logError(e) {
51
+ if (typeof e === 'string') {
52
+ (0, exports.log)(emoji.emojify(chalk_1.default.bold.red(e)));
53
+ }
54
+ else {
55
+ (0, exports.log)(emoji.emojify(chalk_1.default.bold.red(e.message)));
56
+ if (e.error && e.error.message) {
57
+ logDetail(e.error.message);
58
+ }
59
+ }
60
+ }
61
+ exports.logError = logError;
62
+ function logWarning(s) {
63
+ (0, exports.log)(emoji.emojify(chalk_1.default.bold.yellow(s)));
64
+ }
65
+ exports.logWarning = logWarning;
66
+ function logInfo(s) {
67
+ (0, exports.log)(emoji.emojify(chalk_1.default.bold(s)));
68
+ }
69
+ exports.logInfo = logInfo;
70
+ function logDetail(s) {
71
+ (0, exports.log)(emoji.emojify(chalk_1.default.dim(s)));
72
+ }
73
+ exports.logDetail = logDetail;
74
+ function logObject(o, format = 'table', fields = null) {
75
+ if (!o) {
76
+ return logError('Null object');
77
+ }
78
+ if (format === 'table') {
79
+ let data;
80
+ if (Array.isArray(o)) {
81
+ if (o.length === 0) {
82
+ return (0, exports.log)('No Items');
83
+ }
84
+ if (typeof o[0] === 'object') {
85
+ const keys = fields || Object.keys(o[0]);
86
+ data = [['', ...keys.map(key => chalk_1.default.bold.green(key))]];
87
+ o.forEach((rowObj, index) => {
88
+ const row = [index.toString(), ...keys.map(key => formatCell(rowObj[key]))];
89
+ data.push(row);
90
+ });
91
+ }
92
+ else {
93
+ data = [['', chalk_1.default.bold.green('Value')]];
94
+ o.forEach((rowObj, index) => {
95
+ const row = [index.toString(), formatCell(rowObj)];
96
+ data.push(row);
97
+ });
98
+ }
99
+ }
100
+ else {
101
+ data = [
102
+ [chalk_1.default.bold.green('Property'), chalk_1.default.bold.green('Value')],
103
+ ...Object.keys(o).map(key => [key, formatCell(o[key])])
104
+ ];
105
+ }
106
+ const maxWidths = maxColumnWidths(data);
107
+ const columnConfig = maxWidths.map(width => ({ width: Math.min(width, 36), truncate: 200 }));
108
+ // tslint:disable-next-line:no-console
109
+ console.log((0, table_1.table)(data, { columns: columnConfig }));
110
+ }
111
+ else if (format === 'csv') {
112
+ if (!Array.isArray(o)) {
113
+ o = [o];
114
+ }
115
+ (0, exports.log)((0, sync_1.default)(o, { header: true }));
116
+ }
117
+ else {
118
+ (0, exports.log)(JSON.stringify(o, null, 2));
119
+ }
120
+ }
121
+ exports.logObject = logObject;
122
+ // Support functions taken from table module
123
+ function maxColumnWidths(rows) {
124
+ if (!rows[0]) {
125
+ throw new Error('Dataset must have at least one row.');
126
+ }
127
+ const columns = new Array(rows[0].length).fill(0);
128
+ rows.forEach(row => {
129
+ const columnWidthIndex = cellWidthIndex(row);
130
+ columnWidthIndex.forEach((valueWidth, index0) => {
131
+ if (columns[index0] < valueWidth) {
132
+ columns[index0] = valueWidth;
133
+ }
134
+ });
135
+ });
136
+ return columns;
137
+ }
138
+ function cellWidthIndex(cells) {
139
+ return cells.map(value => {
140
+ return stringWidth(value);
141
+ });
142
+ }
143
+ function formatCell(obj) {
144
+ if (Array.isArray(obj)) {
145
+ return '<array>';
146
+ }
147
+ else if (obj === null) {
148
+ return chalk_1.default.grey('null');
149
+ }
150
+ else if (typeof obj === 'undefined') {
151
+ return chalk_1.default.grey('undefined');
152
+ }
153
+ else if (typeof obj === 'object') {
154
+ return '<object>';
155
+ }
156
+ else {
157
+ return obj.toString().replace(/[^ -~]/g, ' ');
158
+ }
159
+ }
160
+ /**
161
+ * Query client resource endpoint give an ID or unique prefix
162
+ *
163
+ * @param idOrPrefix Resource ID or a unique prefix.
164
+ * @param endpoint Flo.w client endpoint to query
165
+ */
166
+ function resolveResource(idOrPrefix, endpoint, idField = 'id') {
167
+ return __awaiter(this, void 0, void 0, function* () {
168
+ const results = yield endpoint.list({
169
+ [`filter[${idField}]`]: `~${idOrPrefix}`,
170
+ sort: idField
171
+ });
172
+ if (results.length === 0) {
173
+ throw new Error('Not found');
174
+ }
175
+ if (results.length > 1 && results[0].id !== idOrPrefix) {
176
+ throw new Error(`Multiple matches for '${idOrPrefix}': ${results.map(d => d[idField]).join(', ')}`);
177
+ }
178
+ return results[0];
179
+ });
180
+ }
181
+ exports.resolveResource = resolveResource;
182
+ function isNumeric(n) {
183
+ return !isNaN(parseFloat(n)) && isFinite(n);
184
+ }
185
+ exports.isNumeric = isNumeric;
186
+ function isValidExtent(extent) {
187
+ if (!extent || extent.length === 0) {
188
+ return false;
189
+ }
190
+ if (typeof extent === 'string') {
191
+ extent = extent.split(' ');
192
+ }
193
+ if (extent.length !== 4) {
194
+ return false;
195
+ }
196
+ return !extent.find(d => !isNumeric(d));
197
+ }
198
+ exports.isValidExtent = isValidExtent;
199
+ function extentToString(extent) {
200
+ if (!extent || extent.length === 0) {
201
+ return '';
202
+ }
203
+ return extent.map((d) => d.toString()).join(' ');
204
+ }
205
+ exports.extentToString = extentToString;
206
+ function extentFromString(extent) {
207
+ if (extent === null || extent === undefined) {
208
+ return null;
209
+ }
210
+ if (typeof extent === 'string') {
211
+ extent = extent.split(' ');
212
+ }
213
+ return extent.map(d => parseFloat(d));
214
+ }
215
+ exports.extentFromString = extentFromString;
216
+ function domainsToString(domains) {
217
+ if (!Array.isArray(domains) || domains.length === 0) {
218
+ return '';
219
+ }
220
+ return domains.join(', ');
221
+ }
222
+ exports.domainsToString = domainsToString;
223
+ function domainsFromString(domains) {
224
+ if (domains) {
225
+ domains = domains.trim();
226
+ }
227
+ if (!domains) {
228
+ return [];
229
+ }
230
+ return domains.split(',').map(d => d.trim());
231
+ }
232
+ exports.domainsFromString = domainsFromString;
233
+ function getMetadataKeyValues(keyValues) {
234
+ try {
235
+ return keyValues.reduce((accum, param) => {
236
+ const [key, value] = param.split('=');
237
+ try {
238
+ accum[key] = looseJSON(value);
239
+ if (typeof accum[key] === 'number') {
240
+ // Wrap numbers in object
241
+ accum[key] = { value };
242
+ }
243
+ }
244
+ catch (e) {
245
+ if (value === '') {
246
+ // empty string is delete marker
247
+ accum[key] = value;
248
+ }
249
+ else {
250
+ // Set value as string
251
+ // Wrap strings in object
252
+ accum[key] = { value };
253
+ }
254
+ }
255
+ return accum;
256
+ }, {});
257
+ }
258
+ catch (e) {
259
+ throw new Error('Bad format for key/value: specify key/value pairs as <key>=<value>');
260
+ }
261
+ }
262
+ exports.getMetadataKeyValues = getMetadataKeyValues;
263
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}