@mountainpass/addressr 1.1.8 → 2.0.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.
- package/example.html +1 -1
- package/lib/.claude/skills/c4/scripts/c4-generate.js +18 -20
- package/lib/.claude/skills/c4/scripts/c4-lib.js +23 -25
- package/lib/.claude/skills/c4-check/scripts/c4-check.js +8 -10
- package/lib/ci/pipeline.js +4 -6
- package/lib/client/elasticsearch.js +7 -14
- package/lib/controllers/Addresses.js +2 -3
- package/lib/dagger-version.js +1 -0
- package/lib/eslint.config.js +92 -0
- package/lib/loader.js +4 -5
- package/lib/server.js +2 -3
- package/lib/service/DefaultService.js +5 -7
- package/lib/service/address-service.js +96 -97
- package/lib/service/printVersion.js +2 -3
- package/lib/src/server2.js +2 -3
- package/lib/src/waycharterServer.js +11 -15
- package/lib/swagger.js +12 -21
- package/lib/utils/stream-down.js +2 -3
- package/lib/version.js +2 -1
- package/package.json +31 -32
package/example.html
CHANGED
|
@@ -6,17 +6,15 @@
|
|
|
6
6
|
*/
|
|
7
7
|
"use strict";
|
|
8
8
|
|
|
9
|
-
var _nodeFs = require("node:fs");
|
|
10
|
-
var
|
|
11
|
-
var _nodePath = require("node:path");
|
|
12
|
-
var _nodePath2 = _interopRequireDefault(_nodePath);
|
|
9
|
+
var _nodeFs = _interopRequireDefault(require("node:fs"));
|
|
10
|
+
var _nodePath = _interopRequireDefault(require("node:path"));
|
|
13
11
|
var _c4Lib = require("./c4-lib.mjs");
|
|
14
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
13
|
const ROOT = process.cwd();
|
|
16
|
-
const OUT_DIR =
|
|
17
|
-
const OUT_JSON =
|
|
18
|
-
const OUT_MERMAID =
|
|
19
|
-
const C4_MODEL =
|
|
14
|
+
const OUT_DIR = _nodePath.default.join(ROOT, "docs", "architecture", "generated");
|
|
15
|
+
const OUT_JSON = _nodePath.default.join(OUT_DIR, "components.json");
|
|
16
|
+
const OUT_MERMAID = _nodePath.default.join(OUT_DIR, "components.mmd");
|
|
17
|
+
const C4_MODEL = _nodePath.default.join(ROOT, "docs", "architecture", "C4_MODEL.md");
|
|
20
18
|
const C3_START = "<!-- c3:generated:start -->";
|
|
21
19
|
const C3_END = "<!-- c3:generated:end -->";
|
|
22
20
|
const C4_START = "<!-- c4:generated:start -->";
|
|
@@ -45,15 +43,15 @@ Regenerate: \`/c4\`
|
|
|
45
43
|
Check freshness: \`/c4-check\`
|
|
46
44
|
`;
|
|
47
45
|
function inlineGenerated(startMarker, endMarker, content) {
|
|
48
|
-
if (!
|
|
49
|
-
const doc =
|
|
46
|
+
if (!_nodeFs.default.existsSync(C4_MODEL)) return;
|
|
47
|
+
const doc = _nodeFs.default.readFileSync(C4_MODEL, "utf8");
|
|
50
48
|
const startIdx = doc.indexOf(startMarker);
|
|
51
49
|
const endIdx = doc.indexOf(endMarker);
|
|
52
50
|
if (startIdx === -1 || endIdx === -1) return;
|
|
53
51
|
const before = doc.slice(0, startIdx + startMarker.length);
|
|
54
52
|
const after = doc.slice(endIdx);
|
|
55
53
|
const updated = `${before}\n\n${content}\n\n${after}`;
|
|
56
|
-
|
|
54
|
+
_nodeFs.default.writeFileSync(C4_MODEL, updated);
|
|
57
55
|
}
|
|
58
56
|
function main() {
|
|
59
57
|
const srcRoot = (0, _c4Lib.detectSourceRoot)(ROOT);
|
|
@@ -61,24 +59,24 @@ function main() {
|
|
|
61
59
|
const json = (0, _c4Lib.toJson)(model);
|
|
62
60
|
const c3Mermaid = (0, _c4Lib.toC3Mermaid)(model);
|
|
63
61
|
const c4Mermaid = (0, _c4Lib.toC4Mermaid)(model);
|
|
64
|
-
|
|
62
|
+
_nodeFs.default.mkdirSync(OUT_DIR, {
|
|
65
63
|
recursive: true
|
|
66
64
|
});
|
|
67
65
|
|
|
68
66
|
// Create scaffold if C4_MODEL.md doesn't exist
|
|
69
|
-
if (!
|
|
70
|
-
|
|
67
|
+
if (!_nodeFs.default.existsSync(C4_MODEL)) {
|
|
68
|
+
_nodeFs.default.mkdirSync(_nodePath.default.dirname(C4_MODEL), {
|
|
71
69
|
recursive: true
|
|
72
70
|
});
|
|
73
|
-
|
|
71
|
+
_nodeFs.default.writeFileSync(C4_MODEL, C4_SCAFFOLD);
|
|
74
72
|
}
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
_nodeFs.default.writeFileSync(OUT_JSON, json);
|
|
74
|
+
_nodeFs.default.writeFileSync(OUT_MERMAID, c3Mermaid);
|
|
77
75
|
inlineGenerated(C3_START, C3_END, `\`\`\`mermaid\n${c3Mermaid.trimEnd()}\n\`\`\``);
|
|
78
76
|
inlineGenerated(C4_START, C4_END, c4Mermaid);
|
|
79
77
|
console.log("PASS: C4 artifacts generated:");
|
|
80
|
-
console.log(`- ${
|
|
81
|
-
console.log(`- ${
|
|
82
|
-
console.log(`- ${
|
|
78
|
+
console.log(`- ${_nodePath.default.relative(ROOT, OUT_JSON)}`);
|
|
79
|
+
console.log(`- ${_nodePath.default.relative(ROOT, OUT_MERMAID)}`);
|
|
80
|
+
console.log(`- ${_nodePath.default.relative(ROOT, C4_MODEL)} (C3 + C4 sections updated)`);
|
|
83
81
|
}
|
|
84
82
|
main();
|
|
@@ -3,15 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.detectSourceRoot = detectSourceRoot;
|
|
7
6
|
exports.buildModel = buildModel;
|
|
7
|
+
exports.detectSourceRoot = detectSourceRoot;
|
|
8
8
|
exports.toC3Mermaid = toC3Mermaid;
|
|
9
9
|
exports.toC4Mermaid = toC4Mermaid;
|
|
10
10
|
exports.toJson = toJson;
|
|
11
|
-
var _nodeFs = require("node:fs");
|
|
12
|
-
var
|
|
13
|
-
var _nodePath = require("node:path");
|
|
14
|
-
var _nodePath2 = _interopRequireDefault(_nodePath);
|
|
11
|
+
var _nodeFs = _interopRequireDefault(require("node:fs"));
|
|
12
|
+
var _nodePath = _interopRequireDefault(require("node:path"));
|
|
15
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
14
|
/**
|
|
17
15
|
* c4-lib.mjs — Portable C4 model builder (pure Node.js, no npm deps).
|
|
@@ -24,24 +22,24 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
24
22
|
|
|
25
23
|
function detectSourceRoot(projectRoot) {
|
|
26
24
|
// 1. Try tsconfig.json
|
|
27
|
-
const tsconfigPath =
|
|
28
|
-
if (
|
|
25
|
+
const tsconfigPath = _nodePath.default.join(projectRoot, "tsconfig.json");
|
|
26
|
+
if (_nodeFs.default.existsSync(tsconfigPath)) {
|
|
29
27
|
try {
|
|
30
|
-
const raw =
|
|
28
|
+
const raw = _nodeFs.default.readFileSync(tsconfigPath, "utf8");
|
|
31
29
|
// Strip single-line comments for lenient JSON parse
|
|
32
30
|
const stripped = raw.replace(/\/\/.*$/gm, "");
|
|
33
31
|
const tsconfig = JSON.parse(stripped);
|
|
34
32
|
const rootDir = tsconfig?.compilerOptions?.rootDir;
|
|
35
33
|
if (rootDir) {
|
|
36
|
-
const candidate =
|
|
37
|
-
if (
|
|
34
|
+
const candidate = _nodePath.default.resolve(projectRoot, rootDir);
|
|
35
|
+
if (_nodeFs.default.existsSync(candidate)) return candidate;
|
|
38
36
|
}
|
|
39
37
|
const includes = tsconfig?.include;
|
|
40
38
|
if (Array.isArray(includes) && includes.length > 0) {
|
|
41
39
|
// Strip glob suffixes like /**/*
|
|
42
40
|
const first = includes[0].replace(/\/\*.*$/, "");
|
|
43
|
-
const candidate =
|
|
44
|
-
if (
|
|
41
|
+
const candidate = _nodePath.default.resolve(projectRoot, first);
|
|
42
|
+
if (_nodeFs.default.existsSync(candidate)) return candidate;
|
|
45
43
|
}
|
|
46
44
|
} catch {
|
|
47
45
|
// Fall through to probing
|
|
@@ -50,8 +48,8 @@ function detectSourceRoot(projectRoot) {
|
|
|
50
48
|
|
|
51
49
|
// 2. Probe common directories
|
|
52
50
|
for (const probe of ["app/src", "src", "lib"]) {
|
|
53
|
-
const candidate =
|
|
54
|
-
if (
|
|
51
|
+
const candidate = _nodePath.default.join(projectRoot, probe);
|
|
52
|
+
if (_nodeFs.default.existsSync(candidate)) return candidate;
|
|
55
53
|
}
|
|
56
54
|
|
|
57
55
|
// 3. Fall back to project root
|
|
@@ -70,11 +68,11 @@ function detectSourceRoot(projectRoot) {
|
|
|
70
68
|
}
|
|
71
69
|
function hasFilesWithExtension(dir, ext) {
|
|
72
70
|
try {
|
|
73
|
-
const entries =
|
|
71
|
+
const entries = _nodeFs.default.readdirSync(dir, {
|
|
74
72
|
withFileTypes: true
|
|
75
73
|
});
|
|
76
74
|
for (const entry of entries) {
|
|
77
|
-
const full =
|
|
75
|
+
const full = _nodePath.default.join(dir, entry.name);
|
|
78
76
|
if (entry.isDirectory()) {
|
|
79
77
|
if (hasFilesWithExtension(full, ext)) return true;
|
|
80
78
|
} else if (entry.isFile() && entry.name.endsWith(ext)) {
|
|
@@ -92,11 +90,11 @@ function hasFilesWithExtension(dir, ext) {
|
|
|
92
90
|
// ---------------------------------------------------------------------------
|
|
93
91
|
|
|
94
92
|
function walk(dir, out) {
|
|
95
|
-
const entries =
|
|
93
|
+
const entries = _nodeFs.default.readdirSync(dir, {
|
|
96
94
|
withFileTypes: true
|
|
97
95
|
});
|
|
98
96
|
for (const entry of entries) {
|
|
99
|
-
const full =
|
|
97
|
+
const full = _nodePath.default.join(dir, entry.name);
|
|
100
98
|
if (entry.isDirectory()) {
|
|
101
99
|
walk(full, out);
|
|
102
100
|
continue;
|
|
@@ -125,10 +123,10 @@ function parseImports(text) {
|
|
|
125
123
|
function resolveImport(fromFile, spec, srcRoot) {
|
|
126
124
|
if (!spec.startsWith(".")) return null;
|
|
127
125
|
const stripped = spec.replace(/\.js$/, "");
|
|
128
|
-
const base =
|
|
129
|
-
const candidates = [base, `${base}.ts`,
|
|
126
|
+
const base = _nodePath.default.resolve(_nodePath.default.dirname(fromFile), stripped);
|
|
127
|
+
const candidates = [base, `${base}.ts`, _nodePath.default.join(base, "index.ts")];
|
|
130
128
|
for (const candidate of candidates) {
|
|
131
|
-
if (
|
|
129
|
+
if (_nodeFs.default.existsSync(candidate) && _nodeFs.default.statSync(candidate).isFile()) {
|
|
132
130
|
return candidate;
|
|
133
131
|
}
|
|
134
132
|
}
|
|
@@ -140,7 +138,7 @@ function resolveImport(fromFile, spec, srcRoot) {
|
|
|
140
138
|
// ---------------------------------------------------------------------------
|
|
141
139
|
|
|
142
140
|
function relToSrc(absPath, srcRoot) {
|
|
143
|
-
return
|
|
141
|
+
return _nodePath.default.relative(srcRoot, absPath).split(_nodePath.default.sep).join("/");
|
|
144
142
|
}
|
|
145
143
|
function componentIdForRel(rel) {
|
|
146
144
|
const [first] = rel.split("/");
|
|
@@ -159,7 +157,7 @@ function buildModel(srcRoot) {
|
|
|
159
157
|
if (!componentFiles.has(fromComp)) componentFiles.set(fromComp, new Set());
|
|
160
158
|
componentFiles.get(fromComp).add(fromRel);
|
|
161
159
|
if (!dependencies.has(fromComp)) dependencies.set(fromComp, new Set());
|
|
162
|
-
const text =
|
|
160
|
+
const text = _nodeFs.default.readFileSync(absFile, "utf8");
|
|
163
161
|
const specs = parseImports(text);
|
|
164
162
|
for (const spec of specs) {
|
|
165
163
|
const resolved = resolveImport(absFile, spec, srcRoot);
|
|
@@ -182,7 +180,7 @@ function buildModel(srcRoot) {
|
|
|
182
180
|
}));
|
|
183
181
|
return {
|
|
184
182
|
generator_version: "1",
|
|
185
|
-
source_root:
|
|
183
|
+
source_root: _nodePath.default.relative(process.cwd(), srcRoot).split(_nodePath.default.sep).join("/") || ".",
|
|
186
184
|
components,
|
|
187
185
|
fileDeps
|
|
188
186
|
};
|
|
@@ -209,7 +207,7 @@ function fileNodeId(relPath) {
|
|
|
209
207
|
return relPath.replace(/[/.\\-]/g, "_").replace(/\.ts$/, "");
|
|
210
208
|
}
|
|
211
209
|
function fileLabel(relPath) {
|
|
212
|
-
return
|
|
210
|
+
return _nodePath.default.basename(relPath, ".ts");
|
|
213
211
|
}
|
|
214
212
|
function toC4Mermaid(model) {
|
|
215
213
|
const sections = [];
|
|
@@ -6,15 +6,13 @@
|
|
|
6
6
|
*/
|
|
7
7
|
"use strict";
|
|
8
8
|
|
|
9
|
-
var _nodeFs = require("node:fs");
|
|
10
|
-
var
|
|
11
|
-
var _nodePath = require("node:path");
|
|
12
|
-
var _nodePath2 = _interopRequireDefault(_nodePath);
|
|
9
|
+
var _nodeFs = _interopRequireDefault(require("node:fs"));
|
|
10
|
+
var _nodePath = _interopRequireDefault(require("node:path"));
|
|
13
11
|
var _c4Lib = require("../../c4/scripts/c4-lib.mjs");
|
|
14
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
13
|
const ROOT = process.cwd();
|
|
16
|
-
const COMPONENTS_FILE =
|
|
17
|
-
const POLICY_FILE =
|
|
14
|
+
const COMPONENTS_FILE = _nodePath.default.join(ROOT, "docs", "architecture", "generated", "components.json");
|
|
15
|
+
const POLICY_FILE = _nodePath.default.join(ROOT, "governance", "architecture-conformance-policy.json");
|
|
18
16
|
function main() {
|
|
19
17
|
const srcRoot = (0, _c4Lib.detectSourceRoot)(ROOT);
|
|
20
18
|
const model = (0, _c4Lib.buildModel)(srcRoot);
|
|
@@ -22,18 +20,18 @@ function main() {
|
|
|
22
20
|
const failures = [];
|
|
23
21
|
|
|
24
22
|
// 1. Compare JSON against existing components.json
|
|
25
|
-
if (!
|
|
23
|
+
if (!_nodeFs.default.existsSync(COMPONENTS_FILE)) {
|
|
26
24
|
failures.push("missing generated architecture model: docs/architecture/generated/components.json");
|
|
27
25
|
} else {
|
|
28
|
-
const existingJson =
|
|
26
|
+
const existingJson = _nodeFs.default.readFileSync(COMPONENTS_FILE, "utf8");
|
|
29
27
|
if (existingJson !== freshJson) {
|
|
30
28
|
failures.push("C4 model is stale — run /c4 to regenerate");
|
|
31
29
|
}
|
|
32
30
|
}
|
|
33
31
|
|
|
34
32
|
// 2. Conformance policy check (if policy file exists)
|
|
35
|
-
if (
|
|
36
|
-
const policy = JSON.parse(
|
|
33
|
+
if (_nodeFs.default.existsSync(POLICY_FILE)) {
|
|
34
|
+
const policy = JSON.parse(_nodeFs.default.readFileSync(POLICY_FILE, "utf8"));
|
|
37
35
|
const components = new Map();
|
|
38
36
|
for (const component of model.components) {
|
|
39
37
|
components.set(component.id, new Set(component.depends_on || []));
|
package/lib/ci/pipeline.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _dagger = require("@dagger.io/dagger");
|
|
4
|
-
var _envPaths = require("env-paths");
|
|
5
|
-
var
|
|
6
|
-
var _nodeFs = require("node:fs");
|
|
7
|
-
var _nodeFs2 = _interopRequireDefault(_nodeFs);
|
|
4
|
+
var _envPaths = _interopRequireDefault(require("env-paths"));
|
|
5
|
+
var _nodeFs = _interopRequireDefault(require("node:fs"));
|
|
8
6
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
7
|
// Use Node 16 or above to run this script.
|
|
10
8
|
// `node build.js` will run this script.
|
|
@@ -30,11 +28,11 @@ actions:
|
|
|
30
28
|
|
|
31
29
|
*/
|
|
32
30
|
|
|
33
|
-
const cacheDir = `${(0,
|
|
31
|
+
const cacheDir = `${(0, _envPaths.default)('', {
|
|
34
32
|
suffix: ''
|
|
35
33
|
}).cache}/dagger`;
|
|
36
34
|
const binLocation = `${cacheDir}/dagger-0.3.9`;
|
|
37
|
-
if (!process.env._EXPERIMENTAL_DAGGER_CLI_BIN &&
|
|
35
|
+
if (!process.env._EXPERIMENTAL_DAGGER_CLI_BIN && _nodeFs.default.existsSync(binLocation)) {
|
|
38
36
|
process.env._EXPERIMENTAL_DAGGER_CLI_BIN = binLocation;
|
|
39
37
|
console.log(`using already downloaded '${binLocation}'`);
|
|
40
38
|
}
|
|
@@ -3,17 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.ELASTIC_PORT =
|
|
6
|
+
exports.ELASTIC_PORT = void 0;
|
|
7
7
|
exports.dropIndex = dropIndex;
|
|
8
|
-
exports.initIndex = initIndex;
|
|
9
8
|
exports.esConnect = esConnect;
|
|
10
|
-
|
|
11
|
-
var
|
|
9
|
+
exports.initIndex = initIndex;
|
|
10
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
12
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
12
|
const waitPort = require('wait-port');
|
|
14
13
|
const elasticsearch = require('@opensearch-project/opensearch');
|
|
15
|
-
const logger = (0,
|
|
16
|
-
const error = (0,
|
|
14
|
+
const logger = (0, _debug.default)('api');
|
|
15
|
+
const error = (0, _debug.default)('error');
|
|
17
16
|
const ES_INDEX_NAME = process.env.ES_INDEX_NAME || 'addressr';
|
|
18
17
|
const ELASTIC_PORT = exports.ELASTIC_PORT = Number.parseInt(process.env.ELASTIC_PORT || '9200');
|
|
19
18
|
const ELASTIC_HOST = process.env.ELASTIC_HOST || '127.0.0.1';
|
|
@@ -21,7 +20,6 @@ const ELASTIC_USERNAME = process.env.ELASTIC_USERNAME || undefined;
|
|
|
21
20
|
const ELASTIC_PASSWORD = process.env.ELASTIC_PASSWORD || undefined;
|
|
22
21
|
const ELASTIC_PROTOCOL = process.env.ELASTIC_PROTOCOL || 'http';
|
|
23
22
|
async function dropIndex(esClient) {
|
|
24
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
25
23
|
let exists = await esClient.indices.exists({
|
|
26
24
|
index: ES_INDEX_NAME
|
|
27
25
|
});
|
|
@@ -34,7 +32,6 @@ async function dropIndex(esClient) {
|
|
|
34
32
|
});
|
|
35
33
|
}
|
|
36
34
|
logger('checking if index exists');
|
|
37
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
38
35
|
exists = await esClient.indices.exists({
|
|
39
36
|
index: ES_INDEX_NAME
|
|
40
37
|
});
|
|
@@ -45,7 +42,6 @@ async function initIndex(esClient, clear, synonyms) {
|
|
|
45
42
|
await dropIndex(esClient);
|
|
46
43
|
}
|
|
47
44
|
logger('checking if index exists');
|
|
48
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
49
45
|
const exists = await esClient.indices.exists({
|
|
50
46
|
index: ES_INDEX_NAME
|
|
51
47
|
});
|
|
@@ -140,7 +136,6 @@ async function initIndex(esClient, clear, synonyms) {
|
|
|
140
136
|
logger({
|
|
141
137
|
indexPutMappingResult
|
|
142
138
|
});
|
|
143
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
144
139
|
const indexOpenResult = await esClient.indices.open({
|
|
145
140
|
index: ES_INDEX_NAME
|
|
146
141
|
});
|
|
@@ -165,13 +160,13 @@ async function initIndex(esClient, clear, synonyms) {
|
|
|
165
160
|
}
|
|
166
161
|
const indexGetResult = await esClient.indices.get({
|
|
167
162
|
index: ES_INDEX_NAME,
|
|
168
|
-
|
|
163
|
+
include_defaults: true
|
|
169
164
|
});
|
|
170
165
|
logger(`indexGetResult:\n${JSON.stringify(indexGetResult, undefined, 2)}`);
|
|
171
166
|
}
|
|
172
167
|
async function esConnect(esport = ELASTIC_PORT, eshost = ELASTIC_HOST, interval = 1000, timeout = 0) {
|
|
173
168
|
// we keep trying to connect, no matter what
|
|
174
|
-
|
|
169
|
+
|
|
175
170
|
while (true) {
|
|
176
171
|
logger(`trying to reach elastic search on ${eshost}:${esport}...`);
|
|
177
172
|
try {
|
|
@@ -183,8 +178,6 @@ async function esConnect(esport = ELASTIC_PORT, eshost = ELASTIC_HOST, interval
|
|
|
183
178
|
});
|
|
184
179
|
if (open) {
|
|
185
180
|
logger(`...${eshost}:${esport} is reachable`);
|
|
186
|
-
|
|
187
|
-
// eslint-disable-next-line no-constant-condition
|
|
188
181
|
while (true) {
|
|
189
182
|
try {
|
|
190
183
|
const node = ELASTIC_USERNAME ? `${ELASTIC_PROTOCOL}://${ELASTIC_USERNAME}:${ELASTIC_PASSWORD}@${eshost}:${esport}` : `${ELASTIC_PROTOCOL}://${eshost}:${esport}`;
|
|
@@ -5,12 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getAddress = getAddress;
|
|
7
7
|
exports.getAddresses = getAddresses;
|
|
8
|
-
var _debug = require("debug");
|
|
9
|
-
var _debug2 = _interopRequireDefault(_debug);
|
|
8
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
10
9
|
var _addressService = require("../service/address-service");
|
|
11
10
|
var _writer = require("../utils/writer.js");
|
|
12
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
-
var logger = (0,
|
|
12
|
+
var logger = (0, _debug.default)('api');
|
|
14
13
|
function getAddress(request, response) {
|
|
15
14
|
logger('IN getAddress');
|
|
16
15
|
var addressId = request.swagger.params['addressId'].value;
|
package/lib/dagger-version.js
CHANGED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _js = _interopRequireDefault(require("@eslint/js"));
|
|
8
|
+
var _globals = _interopRequireDefault(require("globals"));
|
|
9
|
+
var _eslintParser = _interopRequireDefault(require("@babel/eslint-parser"));
|
|
10
|
+
var _recommended = _interopRequireDefault(require("eslint-plugin-prettier/recommended"));
|
|
11
|
+
var _eslintPluginSecurity = _interopRequireDefault(require("eslint-plugin-security"));
|
|
12
|
+
var _configs = _interopRequireDefault(require("@eslint-community/eslint-plugin-eslint-comments/configs"));
|
|
13
|
+
var _eslintPluginUnicorn = _interopRequireDefault(require("eslint-plugin-unicorn"));
|
|
14
|
+
var _eslintPluginPromise = _interopRequireDefault(require("eslint-plugin-promise"));
|
|
15
|
+
var _eslintPluginN = _interopRequireDefault(require("eslint-plugin-n"));
|
|
16
|
+
var _eslintPluginImportX = require("eslint-plugin-import-x");
|
|
17
|
+
var _eslintPluginChaiFriendly = _interopRequireDefault(require("eslint-plugin-chai-friendly"));
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
+
var _default = exports.default = [{
|
|
20
|
+
ignores: ['nodemodules/**/*', 'target/**/*', 'coverage/**', 'test-results/**', 'lib/**/*', '.env']
|
|
21
|
+
}, _js.default.configs.recommended, _eslintPluginSecurity.default.configs.recommended, _configs.default.recommended, _eslintPluginUnicorn.default.configs['flat/recommended'], _eslintPluginPromise.default.configs['flat/recommended'], _eslintPluginN.default.configs['flat/recommended-module'], _eslintPluginImportX.importX.flatConfigs.recommended, _eslintPluginImportX.importX.flatConfigs.warnings, _recommended.default, {
|
|
22
|
+
languageOptions: {
|
|
23
|
+
parser: _eslintParser.default,
|
|
24
|
+
parserOptions: {
|
|
25
|
+
sourceType: 'module',
|
|
26
|
+
requireConfigFile: false
|
|
27
|
+
},
|
|
28
|
+
globals: {
|
|
29
|
+
..._globals.default.node,
|
|
30
|
+
Promise: true
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
rules: {
|
|
34
|
+
quotes: 'off',
|
|
35
|
+
'no-console': 'off',
|
|
36
|
+
'comma-dangle': 'off',
|
|
37
|
+
strict: 2,
|
|
38
|
+
'prettier/prettier': 'error',
|
|
39
|
+
'import-x/default': 0,
|
|
40
|
+
'unicorn/filename-case': ['warn', {
|
|
41
|
+
cases: {
|
|
42
|
+
kebabCase: true,
|
|
43
|
+
pascalCase: true
|
|
44
|
+
}
|
|
45
|
+
}],
|
|
46
|
+
'unicorn/prevent-abbreviations': 'warn',
|
|
47
|
+
'unicorn/no-null': 'warn',
|
|
48
|
+
'unicorn/no-process-exit': 'warn',
|
|
49
|
+
'unicorn/prefer-module': 'off',
|
|
50
|
+
'unicorn/no-array-callback-reference': 'off',
|
|
51
|
+
'unicorn/no-array-for-each': 'off',
|
|
52
|
+
'unicorn/prefer-spread': 'off',
|
|
53
|
+
'unicorn/prefer-top-level-await': 'off',
|
|
54
|
+
'unicorn/prefer-global-this': 'off',
|
|
55
|
+
'unicorn/require-module-specifiers': 'off',
|
|
56
|
+
'unicorn/prefer-string-raw': 'off',
|
|
57
|
+
'unicorn/no-anonymous-default-export': 'off',
|
|
58
|
+
'promise/always-return': 'warn',
|
|
59
|
+
'promise/catch-or-return': 'warn',
|
|
60
|
+
'n/no-unsupported-features/es-syntax': 'off',
|
|
61
|
+
'n/no-unsupported-features/node-builtins': ['error', {
|
|
62
|
+
ignores: ['fetch']
|
|
63
|
+
}],
|
|
64
|
+
'n/no-deprecated-api': 'warn',
|
|
65
|
+
'no-process-exit': 'warn',
|
|
66
|
+
'no-useless-assignment': 'off',
|
|
67
|
+
complexity: 'warn',
|
|
68
|
+
'n/hashbang': ['error', {
|
|
69
|
+
convertPath: {
|
|
70
|
+
'bin/**/*.js': ['^bin/(.+?)\\.js$', 'lib/bin/$1.js']
|
|
71
|
+
}
|
|
72
|
+
}]
|
|
73
|
+
}
|
|
74
|
+
}, {
|
|
75
|
+
files: ['test/**'],
|
|
76
|
+
..._eslintPluginChaiFriendly.default.configs.recommendedFlat,
|
|
77
|
+
languageOptions: {
|
|
78
|
+
globals: {
|
|
79
|
+
expect: true
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}, {
|
|
83
|
+
files: ['scripts/check-version.js'],
|
|
84
|
+
languageOptions: {
|
|
85
|
+
parserOptions: {
|
|
86
|
+
sourceType: 'script'
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
rules: {
|
|
90
|
+
'n/hashbang': 'off'
|
|
91
|
+
}
|
|
92
|
+
}];
|
package/lib/loader.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _debug = require("debug");
|
|
4
|
-
var _debug2 = _interopRequireDefault(_debug);
|
|
3
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
5
4
|
var _elasticsearch = require("./client/elasticsearch");
|
|
6
5
|
var _addressService = require("./service/address-service");
|
|
7
6
|
var _printVersion = require("./service/printVersion");
|
|
8
7
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
-
const logger = (0,
|
|
10
|
-
const error = (0,
|
|
8
|
+
const logger = (0, _debug.default)('api');
|
|
9
|
+
const error = (0, _debug.default)('error');
|
|
11
10
|
if (process.env.DEBUG == undefined) {
|
|
12
|
-
|
|
11
|
+
_debug.default.enable('api,error');
|
|
13
12
|
}
|
|
14
13
|
const start = process.hrtime();
|
|
15
14
|
(0, _elasticsearch.esConnect)().then(() => {
|
package/lib/server.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _debug = require("debug");
|
|
4
|
-
var _debug2 = _interopRequireDefault(_debug);
|
|
3
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
5
4
|
var _elasticsearch = require("./client/elasticsearch");
|
|
6
5
|
var _printVersion = require("./service/printVersion");
|
|
7
6
|
var _swagger = require("./swagger");
|
|
8
7
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
-
const logger = (0,
|
|
8
|
+
const logger = (0, _debug.default)('api');
|
|
10
9
|
(0, _swagger.startServer)().then(() => {
|
|
11
10
|
logger('connecting es client');
|
|
12
11
|
const p1 = (0, _elasticsearch.esConnect)().then(esClient => {
|
|
@@ -4,13 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getApiRoot = getApiRoot;
|
|
7
|
-
var _debug = require("debug");
|
|
8
|
-
var
|
|
9
|
-
var _httpLinkHeader = require("http-link-header");
|
|
10
|
-
var _httpLinkHeader2 = _interopRequireDefault(_httpLinkHeader);
|
|
7
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
8
|
+
var _httpLinkHeader = _interopRequireDefault(require("http-link-header"));
|
|
11
9
|
var _setLinkOptions = require("./setLinkOptions");
|
|
12
10
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
-
var logger = (0,
|
|
11
|
+
var logger = (0, _debug.default)('api');
|
|
14
12
|
|
|
15
13
|
/**
|
|
16
14
|
* API Root
|
|
@@ -20,7 +18,7 @@ var logger = (0, _debug2.default)('api');
|
|
|
20
18
|
**/
|
|
21
19
|
async function getApiRoot() {
|
|
22
20
|
const paths = Object.keys(global.swaggerDoc.paths).filter(p => global.swaggerDoc.paths[p].get !== undefined && global.swaggerDoc.paths[p].get['x-root-rel'] !== undefined);
|
|
23
|
-
const link = new
|
|
21
|
+
const link = new _httpLinkHeader.default();
|
|
24
22
|
for (const p of paths) {
|
|
25
23
|
const op = global.swaggerDoc.paths[p].get;
|
|
26
24
|
if (op.parameters && op.parameters.find(parameter => parameter.required === true)) {
|
|
@@ -45,7 +43,7 @@ async function getApiRoot() {
|
|
|
45
43
|
title: 'API Docs',
|
|
46
44
|
type: 'application/json'
|
|
47
45
|
});
|
|
48
|
-
const linkTemplate = new
|
|
46
|
+
const linkTemplate = new _httpLinkHeader.default();
|
|
49
47
|
for (const url of paths) {
|
|
50
48
|
const op = global.swaggerDoc.paths[url].get;
|
|
51
49
|
logger(op);
|