@appland/appmap 3.50.5 → 3.51.1

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.
@@ -1,15 +1,35 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
4
20
  };
5
21
  Object.defineProperty(exports, "__esModule", { value: true });
6
22
  const path_1 = require("path");
7
23
  const fs_1 = require("fs");
8
24
  const async_1 = require("async");
9
25
  const glob_1 = require("glob");
10
- const js_yaml_1 = __importDefault(require("js-yaml"));
26
+ const js_yaml_1 = __importStar(require("js-yaml"));
11
27
  const openapi_1 = require("@appland/openapi");
12
28
  const util_1 = require("util");
29
+ const locateAppMapDir_1 = require("../lib/locateAppMapDir");
30
+ const handleWorkingDirectory_1 = require("../lib/handleWorkingDirectory");
31
+ const locateAppMapConfigFile_1 = require("../lib/locateAppMapConfigFile");
32
+ const promises_1 = require("fs/promises");
13
33
  class OpenAPICommand {
14
34
  constructor(appmapDir) {
15
35
  this.appmapDir = appmapDir;
@@ -75,11 +95,13 @@ exports.default = {
75
95
  aliases: ['swagger'],
76
96
  describe: 'Generate OpenAPI from AppMaps in a directory',
77
97
  builder(args) {
98
+ args.option('directory', {
99
+ describe: 'program working directory',
100
+ type: 'string',
101
+ alias: 'd',
102
+ });
78
103
  args.option('appmap-dir', {
79
- alias: ['d'],
80
104
  describe: 'directory to recursively inspect for AppMaps',
81
- default: 'tmp/appmap',
82
- requiresArg: true,
83
105
  });
84
106
  args.option('output-file', {
85
107
  alias: ['o'],
@@ -98,7 +120,9 @@ exports.default = {
98
120
  return args.strict();
99
121
  },
100
122
  async handler(argv) {
123
+ var _a, _b;
101
124
  (0, openapi_1.verbose)(argv.verbose);
125
+ (0, handleWorkingDirectory_1.handleWorkingDirectory)(argv.directory);
102
126
  const { openapiTitle, openapiVersion } = argv;
103
127
  function tryConfigure(path, fn) {
104
128
  try {
@@ -108,15 +132,15 @@ exports.default = {
108
132
  console.warn(`Warning: unable to configure OpenAPI field ${path}`);
109
133
  }
110
134
  }
111
- const cmd = new OpenAPICommand(argv.appmapDir);
135
+ const appmapDir = await (0, locateAppMapDir_1.locateAppMapDir)(argv.appmapDir);
136
+ const appmapConfigFile = await (0, locateAppMapConfigFile_1.locateAppMapConfigFile)(appmapDir);
137
+ const cmd = new OpenAPICommand(appmapDir);
112
138
  const openapi = await cmd.execute();
113
- const template = await loadTemplate(argv.openapiTemplate);
114
- template.paths = openapi.paths;
115
- // TODO: This should be made available, but isn't
116
- template.components = openapi.components;
117
139
  for (const error of cmd.errors) {
118
140
  console.warn(error);
119
141
  }
142
+ const template = await loadTemplate(argv.openapiTemplate);
143
+ template.paths = openapi.paths;
120
144
  if (openapiTitle) {
121
145
  tryConfigure('info.title', () => {
122
146
  template.info.title = openapiTitle;
@@ -127,6 +151,21 @@ exports.default = {
127
151
  template.info.version = openapiVersion;
128
152
  });
129
153
  }
154
+ // TODO: This should be made available, but isn't
155
+ template.components = openapi.components;
156
+ template.components || (template.components = {});
157
+ let appmapConfig;
158
+ if (appmapConfigFile) {
159
+ appmapConfig = ((0, js_yaml_1.load)(await (0, promises_1.readFile)(appmapConfigFile, 'utf-8')) || {});
160
+ }
161
+ const overrides = (_a = appmapConfig === null || appmapConfig === void 0 ? void 0 : appmapConfig.openapi) === null || _a === void 0 ? void 0 : _a.overrides;
162
+ const schemas = (_b = appmapConfig === null || appmapConfig === void 0 ? void 0 : appmapConfig.openapi) === null || _b === void 0 ? void 0 : _b.schemas;
163
+ if (schemas)
164
+ template.components.schemas = schemas;
165
+ if (overrides)
166
+ applySchemaOverrides(template.paths, overrides);
167
+ if (template.paths)
168
+ sortProperties(template.paths);
130
169
  const fileContents = `# Generated by: @appland/appmap openapi
131
170
  #
132
171
  # Customize the title with: --openapi-title
@@ -144,4 +183,38 @@ ${js_yaml_1.default.dump(template)}
144
183
  }
145
184
  },
146
185
  };
186
+ function sortProperties(values) {
187
+ Object.keys(values).forEach((key) => {
188
+ let value = values[key];
189
+ if (key === 'properties' && typeof value === 'object') {
190
+ values[key] = Object.keys(value)
191
+ .sort()
192
+ .reduce((memo, key) => {
193
+ const v = value[key];
194
+ if (typeof v === 'object' && v !== null && v.constructor !== Array)
195
+ sortProperties(v);
196
+ memo[key] = v;
197
+ return memo;
198
+ }, {});
199
+ }
200
+ else if (typeof value === 'object' && value !== null) {
201
+ sortProperties(value);
202
+ }
203
+ });
204
+ }
205
+ function applySchemaOverrides(paths, overrides) {
206
+ Object.keys(overrides).forEach((key) => {
207
+ const value = overrides[key];
208
+ if (value === undefined)
209
+ return;
210
+ if (paths[key] == undefined)
211
+ return;
212
+ if (key === 'schema') {
213
+ paths.schema = Object.assign({}, overrides.schema);
214
+ }
215
+ else if (typeof value === 'object') {
216
+ applySchemaOverrides(paths[key], value);
217
+ }
218
+ });
219
+ }
147
220
  //# sourceMappingURL=openapi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/cmds/openapi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/cmds/openapi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.locateAppMapConfigFile = void 0;
4
+ const path_1 = require("path");
5
+ const utils_1 = require("../utils");
6
+ async function locateAppMapConfigFile(appmapDir) {
7
+ let dir = appmapDir;
8
+ while (true) {
9
+ const appmapFile = (0, path_1.join)(dir, 'appmap.yml');
10
+ if (await (0, utils_1.exists)(appmapFile))
11
+ return appmapFile;
12
+ const parentDir = (0, path_1.resolve)(dir, '..');
13
+ if (parentDir === '/' || parentDir === dir)
14
+ break;
15
+ dir = parentDir;
16
+ }
17
+ }
18
+ exports.locateAppMapConfigFile = locateAppMapConfigFile;
19
+ //# sourceMappingURL=locateAppMapConfigFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locateAppMapConfigFile.js","sourceRoot":"","sources":["../../src/lib/locateAppMapConfigFile.ts"],"names":[],"mappings":";;;AAAA,+BAAqC;AACrC,oCAAkC;AAE3B,KAAK,UAAU,sBAAsB,CAAC,SAAiB;IAC5D,IAAI,GAAG,GAAW,SAAS,CAAC;IAC5B,OAAO,IAAI,EAAE;QACX,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC3C,IAAI,MAAM,IAAA,cAAM,EAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAEhD,MAAM,SAAS,GAAG,IAAA,cAAO,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG;YAAE,MAAM;QAElD,GAAG,GAAG,SAAS,CAAC;KACjB;AACH,CAAC;AAXD,wDAWC"}
@@ -9,6 +9,7 @@ const userInteraction_1 = __importDefault(require("../../cmds/userInteraction"))
9
9
  const telemetry_1 = __importDefault(require("../../telemetry"));
10
10
  const zendesk_1 = __importDefault(require("./zendesk"));
11
11
  exports.DEFAULT_HELP_MSG = ' ';
12
+ const validation_1 = require("./validation");
12
13
  async function openTicket(errors, helpMsg = exports.DEFAULT_HELP_MSG, prompt = true) {
13
14
  var _a;
14
15
  errors = !Array.isArray(errors) ? [errors] : errors;
@@ -48,12 +49,12 @@ If you change your mind, you can always reach us by email: support@appmap.io
48
49
  {
49
50
  name: 'name',
50
51
  message: `Your name`,
51
- validate: (v) => v.trim().length > 0 || 'Please enter your name',
52
+ validate: (v) => (0, validation_1.isValidName)(v) || 'Please enter your name',
52
53
  },
53
54
  {
54
55
  name: 'email',
55
56
  message: `Your email address`,
56
- validate: (v) => v.trim().length > 0 || 'Please enter your email address',
57
+ validate: (v) => (0, validation_1.isValidEmail)(v) || 'Please enter a valid email address',
57
58
  },
58
59
  ]);
59
60
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"openTicket.js","sourceRoot":"","sources":["../../../src/lib/ticket/openTicket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openTicket.js","sourceRoot":"","sources":["../../../src/lib/ticket/openTicket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isValidEmail = exports.isValidName = void 0;
7
+ const isEmail_1 = __importDefault(require("validator/lib/isEmail"));
8
+ const isLength_1 = __importDefault(require("validator/lib/isLength"));
9
+ const trim_1 = __importDefault(require("validator/lib/trim"));
10
+ function isValidName(name) {
11
+ // Ask for the name to have at least 2 characters, to keep the user from just repeatedly hitting
12
+ // 'n'.
13
+ return (0, isLength_1.default)((0, trim_1.default)(name), { min: 2 });
14
+ }
15
+ exports.isValidName = isValidName;
16
+ function isValidEmail(email) {
17
+ return (0, isEmail_1.default)(email);
18
+ }
19
+ exports.isValidEmail = isValidEmail;
20
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/lib/ticket/validation.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA4C;AAC5C,sEAA8C;AAC9C,8DAAsC;AAEtC,SAAgB,WAAW,CAAC,IAAY;IACtC,iGAAiG;IACjG,OAAO;IACP,OAAO,IAAA,kBAAQ,EAAC,IAAA,cAAI,EAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1C,CAAC;AAJD,kCAIC;AAED,SAAgB,YAAY,CAAC,KAAa;IACxC,OAAO,IAAA,iBAAO,EAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAFD,oCAEC"}