@voxgig/apidef 5.2.1 → 5.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/transform/select.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/transform/select.ts"],"names":[],"mappings":"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"}
package/dist/utility.js CHANGED
@@ -37,6 +37,9 @@ const KONSOLE_LOG = console['log'];
37
37
  const RE_JSON_KEY = /"([a-zA-Z_][a-zA-Z_0-9]*)": /g;
38
38
  const RE_JSON_TRAILING_BRACE = /},/g;
39
39
  const RE_JSON_COMMENT = /\n(\s*)([a-zA-Z_][a-zA-Z_0-9]*)_COMMENT:\s*"(.*)",/g;
40
+ const RE_BARE_KEY = /^[A-Za-z_][_A-Za-z0-9]*$/;
41
+ const isBareKey = (k) => RE_BARE_KEY.test(k);
42
+ const quoteKey = (k) => (isBareKey(k) ? k : JSON.stringify(k));
40
43
  function makeWarner(spec) {
41
44
  const { point, log } = spec;
42
45
  const history = [];
@@ -90,56 +93,56 @@ function formatJsonSrc(jsonsrc) {
90
93
  .replace(RE_JSON_TRAILING_BRACE, '}\n')
91
94
  .replace(RE_JSON_COMMENT, '\n\n$1# $2 $3');
92
95
  }
96
+ // Common irregular plurals - hoisted to module scope to avoid re-allocation per call.
97
+ const IRREGULARS = {
98
+ 'analytics': 'analytics',
99
+ 'analyses': 'analysis',
100
+ 'appendices': 'appendix',
101
+ 'axes': 'axis',
102
+ 'children': 'child',
103
+ 'courses': 'course',
104
+ 'crises': 'crisis',
105
+ 'criteria': 'criterion',
106
+ // 'data': 'datum',
107
+ 'diagnoses': 'diagnosis',
108
+ 'feet': 'foot',
109
+ 'furnace': 'furnaces',
110
+ 'geese': 'goose',
111
+ 'horses': 'horse',
112
+ 'house': 'houses',
113
+ 'indices': 'index',
114
+ 'lens': 'lens',
115
+ 'license': 'licenses',
116
+ 'matrices': 'matrix',
117
+ 'men': 'man',
118
+ 'mice': 'mouse',
119
+ 'movies': 'movie',
120
+ 'notice': 'notices',
121
+ 'oases': 'oasis',
122
+ 'phrase': 'phrase',
123
+ 'releases': 'release',
124
+ 'people': 'person',
125
+ 'phenomena': 'phenomenon',
126
+ 'practice': 'practices',
127
+ 'promise': 'promises',
128
+ 'series': 'series',
129
+ 'species': 'species',
130
+ 'teeth': 'tooth',
131
+ 'theses': 'thesis',
132
+ 'vertices': 'vertex',
133
+ 'women': 'woman',
134
+ 'yes': 'yes',
135
+ };
93
136
  function depluralize(word) {
94
137
  if (!word || word.length === 0) {
95
138
  return word;
96
139
  }
97
- // Common irregular plurals
98
- const irregulars = {
99
- 'analytics': 'analytics',
100
- 'analyses': 'analysis',
101
- 'appendices': 'appendix',
102
- 'axes': 'axis',
103
- 'children': 'child',
104
- 'courses': 'course',
105
- 'crises': 'crisis',
106
- 'criteria': 'criterion',
107
- // 'data': 'datum',
108
- 'diagnoses': 'diagnosis',
109
- 'feet': 'foot',
110
- 'furnace': 'furnaces',
111
- 'geese': 'goose',
112
- 'horses': 'horse',
113
- 'house': 'houses',
114
- 'indices': 'index',
115
- 'lens': 'lens',
116
- 'license': 'licenses',
117
- 'matrices': 'matrix',
118
- 'men': 'man',
119
- 'mice': 'mouse',
120
- 'movies': 'movie',
121
- 'notice': 'notices',
122
- 'oases': 'oasis',
123
- 'phrase': 'phrase',
124
- 'releases': 'release',
125
- 'people': 'person',
126
- 'phenomena': 'phenomenon',
127
- 'practice': 'practices',
128
- 'promise': 'promises',
129
- 'series': 'series',
130
- 'species': 'species',
131
- 'teeth': 'tooth',
132
- 'theses': 'thesis',
133
- 'vertices': 'vertex',
134
- 'women': 'woman',
135
- 'yes': 'yes',
136
- };
137
- if (irregulars[word]) {
138
- return irregulars[word];
140
+ if (IRREGULARS[word]) {
141
+ return IRREGULARS[word];
139
142
  }
140
- for (let ending in irregulars) {
143
+ for (let ending in IRREGULARS) {
141
144
  if (word.endsWith(ending)) {
142
- return word.replace(ending, irregulars[ending]);
145
+ return word.replace(ending, IRREGULARS[ending]);
143
146
  }
144
147
  }
145
148
  // Rules for regular plurals (applied in order)
@@ -434,15 +437,11 @@ function isParam(partStr) {
434
437
  function formatJSONIC(val, opts) {
435
438
  if (undefined === val)
436
439
  return '';
437
- val = (0, util_1.decircular)(val);
438
440
  const hsepd = opts?.hsepd ?? 1;
439
441
  const showd = !!opts?.$;
440
442
  const useColor = opts?.color ?? false;
441
443
  const maxlines = opts?.maxlines ?? Number.MAX_VALUE;
442
444
  const exclude = opts?.exclude ?? [];
443
- const space = ' ';
444
- const isBareKey = (k) => /^[A-Za-z_][_A-Za-z0-9]*$/.test(k);
445
- const quoteKey = (k) => (isBareKey(k) ? k : JSON.stringify(k));
446
445
  // ANSI color codes
447
446
  const colors = {
448
447
  reset: '\x1b[0m',
@@ -491,6 +490,11 @@ function formatJSONIC(val, opts) {
491
490
  return String(c);
492
491
  }
493
492
  };
493
+ return renderJSONIC(val, hsepd, showd, useColor, maxlines, exclude, c, renderPrimitive, renderComment);
494
+ }
495
+ function renderJSONIC(val, hsepd, showd, useColor, maxlines, exclude, c, renderPrimitive, renderComment) {
496
+ const space = ' ';
497
+ const seen = new WeakSet();
494
498
  let stack = new Array(32);
495
499
  let top = -1;
496
500
  // Seed root frame, capturing a possible top-level _COMMENT
@@ -522,6 +526,11 @@ function formatJSONIC(val, opts) {
522
526
  lines.push(`${linePrefix}${renderPrimitive(v)}${commentSuffix}`);
523
527
  continue;
524
528
  }
529
+ // Circular reference detected — fall back to decircular
530
+ if (seen.has(v)) {
531
+ return renderJSONIC((0, util_1.decircular)(val), hsepd, showd, useColor, maxlines, exclude, c, renderPrimitive, renderComment);
532
+ }
533
+ seen.add(v);
525
534
  if (Array.isArray(v)) {
526
535
  const arr = v;
527
536
  if (arr.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"utility.js","sourceRoot":"","sources":["../src/utility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utility.js","sourceRoot":"","sources":["../src/utility.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voxgig/apidef",
3
- "version": "5.2.1",
3
+ "version": "5.3.0",
4
4
  "main": "dist/apidef.js",
5
5
  "type": "commonjs",
6
6
  "types": "dist/apidef.d.ts",
package/src/apidef.ts CHANGED
@@ -11,8 +11,6 @@ import {
11
11
 
12
12
  import { prettyPino } from '@voxgig/util'
13
13
 
14
- import { decircular } from '@voxgig/util'
15
-
16
14
 
17
15
  import type {
18
16
  ApiDefOptions,
@@ -181,16 +179,14 @@ function ApiDef(opts: ApiDefOptions) {
181
179
  note: defkeys.join(', ')
182
180
  })
183
181
 
184
- const safedef = decircular(def)
185
-
186
182
  // Only write the full JSON debug file when debug mode is enabled,
187
- // as decircular + JSON.stringify + sync write is expensive for large specs.
183
+ // as JSON.stringify + sync write is expensive for large specs.
188
184
  if (opts.debug) {
189
- const fullsrc = JSON.stringify(safedef, null, 2)
185
+ const fullsrc = JSON.stringify(def, null, 2)
190
186
  fs.writeFileSync(defpath + '.full.json', fullsrc)
191
187
  }
192
188
 
193
- ctx.def = safedef
189
+ ctx.def = def
194
190
 
195
191
  steps.push('parse')
196
192
 
@@ -313,13 +313,9 @@ function selectAllMethods(_source: any, spec: TaskSpec): MethodDesc[] {
313
313
 
314
314
  let caught: any = { methods: [] }
315
315
 
316
- Object.entries(ctx.def.paths).map((n: any) => {
317
- const path = n[0]
318
- const pdef = n[1]
319
-
320
- Object.entries(pdef).map((m: any) => {
321
- const method = m[0].toUpperCase()
322
- const mdef = m[1]
316
+ for (const [path, pdef] of Object.entries(ctx.def.paths) as any[]) {
317
+ for (const [m, mdef] of Object.entries(pdef) as any[]) {
318
+ const method = m.toUpperCase()
323
319
 
324
320
  caught.methods.push({
325
321
  path,
@@ -331,8 +327,8 @@ function selectAllMethods(_source: any, spec: TaskSpec): MethodDesc[] {
331
327
  responses: mdef.responses,
332
328
  requestBody: mdef.requestBody,
333
329
  })
334
- })
335
- })
330
+ }
331
+ }
336
332
 
337
333
  caught.methods.sort((a: any, b: any) => {
338
334
  if (a.path < b.path) {
@@ -1195,9 +1191,7 @@ function isOrigCmp(data: any, name: string) {
1195
1191
 
1196
1192
 
1197
1193
  function entityOccursInPath(parts: string[], entname: string) {
1198
- let partsLower = parts.map(p => p.toLowerCase())
1199
- partsLower = partsLower.filter(p => '{' !== p[0]).map(p => canonize(p))
1200
- return !partsLower.reduce((a: boolean, p: string) => (a && p !== entname), true)
1194
+ return parts.some(p => p[0] !== '{' && canonize(p.toLowerCase()) === entname)
1201
1195
  }
1202
1196
 
1203
1197
 
package/src/parse.ts CHANGED
@@ -10,6 +10,9 @@ import { relativizePath } from './utility'
10
10
 
11
11
  const yamlParser = Jsonic.make().use(Yaml)
12
12
 
13
+ // Matches any line that is not purely a YAML comment or whitespace.
14
+ const RE_HAS_CONTENT = /^\s*[^#\s]/m
15
+
13
16
 
14
17
  // Parse an API definition source into a JSON sructure.
15
18
  async function parse(kind: string, source: any, meta: { file: string }) {
@@ -81,36 +84,8 @@ async function parseOpenAPI(source: any, _meta?: any) {
81
84
  parsed.components = {}
82
85
  }
83
86
 
84
- // Walk the tree and add x-ref properties (preserving original $ref values)
85
- const seen = new WeakSet()
86
- let refCount = 0
87
-
88
- function addXRefs(obj: any, path: string = '') {
89
- if (!obj || typeof obj !== 'object' || seen.has(obj)) return
90
- seen.add(obj)
91
-
92
- if (Array.isArray(obj)) {
93
- obj.forEach((item, index) => addXRefs(item, `${path}[${index}]`))
94
- } else {
95
- // Check for $ref property
96
- if (obj.$ref && typeof obj.$ref === 'string') {
97
- obj['x-ref'] = obj.$ref
98
- refCount++
99
- }
100
-
101
- // Recursively process all properties
102
- for (const [key, value] of Object.entries(obj)) {
103
- if (value && typeof value === 'object') {
104
- addXRefs(value, path ? `${path}.${key}` : key)
105
- }
106
- }
107
- }
108
- }
109
-
110
- addXRefs(parsed)
111
-
112
- // Resolve $ref pointers
113
- resolveRefs(parsed, parsed)
87
+ // Single-pass: add x-ref properties and resolve $ref pointers together.
88
+ addXRefsAndResolve(parsed, parsed)
114
89
 
115
90
  const def = decircular(parsed)
116
91
 
@@ -118,10 +93,10 @@ async function parseOpenAPI(source: any, _meta?: any) {
118
93
  }
119
94
 
120
95
 
121
- // Resolve all $ref JSON pointers in an object tree.
122
- // Replaces { $ref: "#/path/to/target", "x-ref": "..." } with the
123
- // resolved target's properties, preserving x-ref.
124
- function resolveRefs(obj: any, root: any, visited?: WeakSet<any>) {
96
+ // Single-pass tree walk that:
97
+ // 1. Preserves original $ref values as x-ref
98
+ // 2. Resolves $ref JSON pointers in-place
99
+ function addXRefsAndResolve(obj: any, root: any, visited?: WeakSet<any>) {
125
100
  if (!obj || typeof obj !== 'object') return
126
101
  if (!visited) visited = new WeakSet()
127
102
  if (visited.has(obj)) return
@@ -130,35 +105,39 @@ function resolveRefs(obj: any, root: any, visited?: WeakSet<any>) {
130
105
  if (Array.isArray(obj)) {
131
106
  for (let i = 0; i < obj.length; i++) {
132
107
  const item = obj[i]
133
- if (item && typeof item === 'object' && typeof item.$ref === 'string') {
134
- const resolved = resolvePointer(root, item.$ref)
135
- if (resolved !== undefined) {
136
- const xref = item['x-ref']
137
- obj[i] = { ...resolved }
138
- if (xref) {
139
- obj[i]['x-ref'] = xref
108
+ if (item && typeof item === 'object') {
109
+ if (typeof item.$ref === 'string') {
110
+ const xref = item.$ref
111
+ const resolved = resolvePointer(root, xref)
112
+ if (resolved !== undefined) {
113
+ obj[i] = { ...resolved, 'x-ref': xref }
114
+ addXRefsAndResolve(obj[i], root, visited)
115
+ } else {
116
+ item['x-ref'] = xref
117
+ addXRefsAndResolve(item, root, visited)
140
118
  }
141
- resolveRefs(obj[i], root, visited)
119
+ } else {
120
+ addXRefsAndResolve(item, root, visited)
142
121
  }
143
- } else {
144
- resolveRefs(item, root, visited)
145
122
  }
146
123
  }
147
124
  } else {
148
125
  for (const key of Object.keys(obj)) {
149
126
  const val = obj[key]
150
- if (val && typeof val === 'object' && typeof val.$ref === 'string') {
151
- const resolved = resolvePointer(root, val.$ref)
152
- if (resolved !== undefined) {
153
- const xref = val['x-ref']
154
- obj[key] = { ...resolved }
155
- if (xref) {
156
- obj[key]['x-ref'] = xref
127
+ if (val && typeof val === 'object') {
128
+ if (typeof val.$ref === 'string') {
129
+ const xref = val.$ref
130
+ const resolved = resolvePointer(root, xref)
131
+ if (resolved !== undefined) {
132
+ obj[key] = { ...resolved, 'x-ref': xref }
133
+ addXRefsAndResolve(obj[key], root, visited)
134
+ } else {
135
+ val['x-ref'] = xref
136
+ addXRefsAndResolve(val, root, visited)
157
137
  }
158
- resolveRefs(obj[key], root, visited)
138
+ } else {
139
+ addXRefsAndResolve(val, root, visited)
159
140
  }
160
- } else {
161
- resolveRefs(val, root, visited)
162
141
  }
163
142
  }
164
143
  }
@@ -192,11 +171,9 @@ function validateSource(kind: string, source: any, meta: { file: string }) {
192
171
  )
193
172
  }
194
173
 
195
- // Remove YAML comment lines (lines that start with # after
196
- // optional whitespace)
197
- const withoutComments = source.replace(/^\s*#.*$/gm, '')
198
-
199
- if (withoutComments.trim().length === 0) {
174
+ // Check if source has any non-comment, non-whitespace content
175
+ // without creating a full string copy.
176
+ if (!RE_HAS_CONTENT.test(source)) {
200
177
  throw new Error(
201
178
  `@voxgig/apidef: parse: ${kind}: source is empty` +
202
179
  ` (${relativizePath(meta.file)})`
@@ -68,6 +68,8 @@ const ARG_KIND: Record<string, ModelArg["kind"]> = {
68
68
 
69
69
 
70
70
  function resolveArgs(ment: ModelEntity, mop: ModelOp, mtarget: ModelTarget, argdefs: ParameterDef[]) {
71
+ const touchedKeys = new Set<string>()
72
+
71
73
  each(argdefs, (argdef: ParameterDef) => {
72
74
  const orig = depluralize(snakify(normalizeFieldName(argdef.name)))
73
75
  const kind = ARG_KIND[argdef.in] ?? 'query'
@@ -84,12 +86,17 @@ function resolveArgs(ment: ModelEntity, mop: ModelOp, mtarget: ModelTarget, argd
84
86
  marg.type = ['`$ONE`', '`$NULL`', marg.type]
85
87
  }
86
88
 
87
- // insert sorted by name
88
89
  const argsKey = (marg.kind === 'param' ? 'params' : marg.kind) as keyof typeof mtarget.args
89
90
  let kindargs = (mtarget.args[argsKey] = mtarget.args[argsKey] ?? [])
90
91
  kindargs.push(marg)
91
- kindargs.sort((a: ModelArg, b: ModelArg) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0)
92
+ touchedKeys.add(argsKey)
92
93
  })
94
+
95
+ // Sort once after all args are collected
96
+ const cmp = (a: ModelArg, b: ModelArg) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0
97
+ for (const key of touchedKeys) {
98
+ mtarget.args[key as keyof typeof mtarget.args]?.sort(cmp)
99
+ }
93
100
  }
94
101
 
95
102
 
@@ -98,11 +98,14 @@ function buildRelations(guideEntity: any, paths$: PathDesc[]) {
98
98
  .filter(n => 0 < n.length)
99
99
  .sort((a, b) => a.length - b.length)
100
100
 
101
- // remove suffixes
101
+ // remove suffixes: keep only ancestors that are not a suffix of any later ancestor
102
102
  ancestors = ancestors
103
- .reduce((a, n, j) =>
104
- ((0 < (ancestors.slice(j + 1).filter(p => suffix(p, n))).length
105
- ? null : a.push(n)), a), [])
103
+ .filter((n, j) => {
104
+ for (let k = j + 1; k < ancestors.length; k++) {
105
+ if (suffix(ancestors[k], n)) return false
106
+ }
107
+ return true
108
+ })
106
109
 
107
110
  const relations = {
108
111
  ancestors
@@ -114,9 +117,13 @@ function buildRelations(guideEntity: any, paths$: PathDesc[]) {
114
117
  }
115
118
 
116
119
 
117
- // True if array c is a suffix of array p,
120
+ // True if array c is a suffix of array p.
118
121
  function suffix(p: string[], c: string[]): boolean {
119
- return c.reduce((b, _, i) => (b && c[c.length - 1 - i] === p[p.length - 1 - i]), true)
122
+ if (c.length > p.length) return false
123
+ for (let i = 0; i < c.length; i++) {
124
+ if (c[c.length - 1 - i] !== p[p.length - 1 - i]) return false
125
+ }
126
+ return true
120
127
  }
121
128
 
122
129
 
@@ -93,6 +93,12 @@ function sortPoints(
93
93
  _ment: ModelEntity,
94
94
  mop: ModelOp,
95
95
  ) {
96
+ // Cache joined exist strings to avoid recomputing on every comparison.
97
+ const existCache = new Map<ModelTarget, string>()
98
+ for (const pt of mop.points) {
99
+ existCache.set(pt, pt.select.exist.join('\t'))
100
+ }
101
+
96
102
  mop.points.sort((a: ModelTarget, b: ModelTarget) => {
97
103
  // longest exist len first
98
104
  let order = b.select.exist.length - a.select.exist.length
@@ -103,8 +109,8 @@ function sortPoints(
103
109
  }
104
110
 
105
111
  if (0 === order) {
106
- const a_exist_str = a.select.exist.join('\t')
107
- const b_exist_str = b.select.exist.join('\t')
112
+ const a_exist_str = existCache.get(a)!
113
+ const b_exist_str = existCache.get(b)!
108
114
  order = a_exist_str < b_exist_str ? -1 :
109
115
  a_exist_str > b_exist_str ? 1 : 0
110
116
  }