@emuanalytics/flow-cli 1.3.126 → 1.3.127

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.
@@ -21,22 +21,33 @@ const builder = (args) => {
21
21
  .option('limit', { alias: 'n', type: 'number', describe: 'Limit to n results' })
22
22
  .option('offset', { alias: ['o'], type: 'number', describe: 'Start list at offset n' })
23
23
  .option('sort', { alias: ['s'], type: 'string', describe: 'Sort by attribute' })
24
+ .option('tags', { alias: 't', type: 'array', describe: 'Filter by specified tags' })
24
25
  .conflicts('id', ['limit', 'offset', 'sort'])
25
26
  .positional('id', { describe: 'Dataset id (or unique prefix)', type: 'string' });
26
27
  };
27
28
  exports.builder = builder;
28
- function handler({ client, id, format, offset, limit, sort }) {
29
+ function handler({ client, id, format, offset, limit, sort, tags }) {
29
30
  return __awaiter(this, void 0, void 0, function* () {
30
31
  try {
31
32
  let results;
32
33
  if (id) {
33
34
  const resource = yield (0, utils_1.resolveResource)(id, client.datasets);
34
- (0, utils_1.logObject)(resource, format);
35
+ if (format === 'table') {
36
+ // Add tags to the output
37
+ (0, utils_1.logObject)(promoteTags(resource), 'table');
38
+ }
39
+ else {
40
+ (0, utils_1.logObject)(resource, format || 'json');
41
+ }
35
42
  }
36
43
  else {
37
44
  results = yield client.datasets.list({ offset, limit, sort });
45
+ if (tags) {
46
+ results = results.filter((dataset) => dataset.metadata.tags && tags.every((tag) => dataset.metadata.tags.includes(tag)));
47
+ }
38
48
  if (format === 'table') {
39
- (0, utils_1.logObject)(results, 'table', ['id', 'name', 'description', 'type']);
49
+ // Add tags to the output
50
+ (0, utils_1.logObject)(results.map(promoteTags), 'table', ['id', 'name', 'description', 'type', 'tags']);
40
51
  }
41
52
  else {
42
53
  (0, utils_1.logObject)(results, format || 'json');
@@ -49,4 +60,15 @@ function handler({ client, id, format, offset, limit, sort }) {
49
60
  });
50
61
  }
51
62
  exports.handler = handler;
63
+ /**
64
+ * Augment a dataset with a `tags` property.
65
+ *
66
+ * A top-level `tags` property containing a comma-separated string of tags is added to facilitate output.
67
+ *
68
+ * @param dataset
69
+ * @returns
70
+ */
71
+ function promoteTags(dataset) {
72
+ return Object.assign(Object.assign({}, dataset), { tags: dataset.metadata.tags ? dataset.metadata.tags.join(',') : '' });
73
+ }
52
74
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/datasets/list.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;AAEH,uCAAmE;AAItD,QAAA,OAAO,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEpC,QAAA,IAAI,GAAG,eAAe,CAAC;AAE7B,MAAM,OAAO,GAAG,CAAC,IAAgB,EAAE,EAAE;IAC1C,OAAO,IAAI;SACR,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC;SAC/E,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC;SACtF,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;SAC/E,SAAS,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;SAC5C,UAAU,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,+BAA+B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrF,CAAC,CAAC;AAPW,QAAA,OAAO,WAOlB;AAWF,SAAsB,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAU;;QAC/E,IAAI;YACF,IAAI,OAAmB,CAAC;YAExB,IAAI,EAAE,EAAE;gBACN,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAe,EAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAA,iBAAS,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aAC7B;iBAAM;gBACL,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9D,IAAI,MAAM,KAAK,OAAO,EAAE;oBACtB,IAAA,iBAAS,EAAC,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;iBACpE;qBAAM;oBACL,IAAA,iBAAS,EAAC,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC,CAAC;iBACtC;aACF;SACF;QAAC,OAAO,CAAC,EAAE;YACV,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;SACb;IACH,CAAC;CAAA;AAlBD,0BAkBC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/datasets/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright © 2024 Emu Analytics
4
+ */
5
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
6
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7
+ return new (P || (P = Promise))(function (resolve, reject) {
8
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
9
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
10
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
11
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
12
+ });
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.handler = exports.builder = exports.desc = exports.command = void 0;
16
+ const utils_1 = require("../../utils");
17
+ exports.command = ['tags <id>'];
18
+ exports.desc = 'Add or remove tags on a dataset.';
19
+ const builder = (args) => {
20
+ return args
21
+ .positional('id', { describe: 'Dataset id (or unique prefix)', type: 'string' })
22
+ .option('add', {
23
+ alias: 'a',
24
+ type: 'array',
25
+ describe: 'One or more tags to add.'
26
+ })
27
+ .option('remove', {
28
+ alias: 'r',
29
+ type: 'array',
30
+ describe: 'One or more tags to remove.'
31
+ });
32
+ };
33
+ exports.builder = builder;
34
+ function handler({ client, id, add, remove, format }) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ try {
37
+ const resource = yield (0, utils_1.resolveResource)(id, client.datasets);
38
+ const existingTags = resource.metadata.tags;
39
+ const updatedTagSet = new Set(existingTags);
40
+ if (add) {
41
+ add.forEach(tag => updatedTagSet.add(tag));
42
+ }
43
+ if (remove) {
44
+ remove.forEach(tag => updatedTagSet.delete(tag));
45
+ }
46
+ const updatedTags = Array.from(updatedTagSet);
47
+ const updatedMetadata = yield client.datasets.setMetadata(resource.id, 'tags', updatedTags);
48
+ (0, utils_1.logObject)(format === 'csv' ? updatedMetadata.tags.map((t) => ({ tag: t })) : updatedMetadata.tags, format || 'table');
49
+ }
50
+ catch (e) {
51
+ (0, utils_1.logError)(e);
52
+ }
53
+ });
54
+ }
55
+ exports.handler = handler;
56
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/commands/datasets/tags.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;AAIH,uCAAmE;AAEtD,QAAA,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC;AAExB,QAAA,IAAI,GAAG,kCAAkC,CAAC;AAEhD,MAAM,OAAO,GAAG,CAAC,IAAgB,EAAE,EAAE;IAC1C,OAAO,IAAI;SACR,UAAU,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,+BAA+B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SAC/E,MAAM,CAAC,KAAK,EAAE;QACb,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,0BAA0B;KACrC,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,6BAA6B;KACxC,CAAC,CAAC;AACP,CAAC,CAAC;AAbW,QAAA,OAAO,WAalB;AAUF,SAAsB,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAU;;QACvE,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAe,EAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5D,MAAM,YAAY,GAAa,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;YAE5C,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aAC5C;YACD,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;aAClD;YACD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE9C,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAC5F,IAAA,iBAAS,EACP,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAC/F,MAAM,IAAI,OAAO,CAClB,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;SACb;IACH,CAAC;CAAA;AAtBD,0BAsBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emuanalytics/flow-cli",
3
- "version": "1.3.126",
3
+ "version": "1.3.127",
4
4
  "main": "index.js",
5
5
  "author": "Robin Summerhill <robin.summerhill@emu-analytics.net",
6
6
  "license": "Copyright 2018 Emu Analytics Limited",
@@ -42,7 +42,7 @@
42
42
  "typescript": "^4.7.4"
43
43
  },
44
44
  "dependencies": {
45
- "@emuanalytics/flow-engine-client": "^1.3.126",
45
+ "@emuanalytics/flow-engine-client": "^1.3.127",
46
46
  "@types/uuid": "^8.3.4",
47
47
  "JSONStream": "^1.3.5",
48
48
  "chalk": "^2.0.1",
@@ -80,5 +80,5 @@
80
80
  "git add"
81
81
  ]
82
82
  },
83
- "gitHead": "99138281a5682b8e576ce5ef186661d864b0f112"
83
+ "gitHead": "337b9cebf9afaeb55829b626b6fdbf0f16adb2e3"
84
84
  }