@voxgig/apidef 6.2.0 → 6.3.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.
- package/bin/voxgig-apidef +1 -1
- package/dist/apidef.js +9 -0
- package/dist/apidef.js.map +1 -1
- package/dist/builder/entity/entity.js +10 -12
- package/dist/builder/entity/entity.js.map +1 -1
- package/dist/builder/entity/info.js +5 -1
- package/dist/builder/entity/info.js.map +1 -1
- package/dist/guide/guide.js +7 -9
- package/dist/guide/guide.js.map +1 -1
- package/dist/guide/heuristic01.js +43 -3
- package/dist/guide/heuristic01.js.map +1 -1
- package/dist/parse.js +9 -1
- package/dist/parse.js.map +1 -1
- package/dist/transform/field.js +21 -10
- package/dist/transform/field.js.map +1 -1
- package/dist/transform/operation.js +7 -1
- package/dist/transform/operation.js.map +1 -1
- package/dist/transform/top.js +70 -0
- package/dist/transform/top.js.map +1 -1
- package/dist/types.d.ts +28 -1
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -1
- package/dist/utility.d.ts +3 -1
- package/dist/utility.js +179 -29
- package/dist/utility.js.map +1 -1
- package/model/{apidef.jsonic → apidef.aontu} +6 -0
- package/package.json +9 -3
- package/src/apidef.ts +12 -0
- package/src/builder/entity/entity.ts +10 -20
- package/src/builder/entity/info.ts +5 -1
- package/src/guide/guide.ts +6 -7
- package/src/guide/heuristic01.ts +46 -3
- package/src/parse.ts +9 -1
- package/src/transform/field.ts +21 -14
- package/src/transform/operation.ts +7 -1
- package/src/transform/top.ts +72 -0
- package/src/types.ts +9 -1
- package/src/utility.ts +189 -29
- package/README.md +0 -2
- /package/model/{guide.jsonic → guide.aontu} +0 -0
package/dist/transform/field.js
CHANGED
|
@@ -26,7 +26,7 @@ const fieldTransform = async function (ctx) {
|
|
|
26
26
|
seen[opfield.name] = opfield;
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
29
|
-
mergeField(
|
|
29
|
+
mergeField(mop, seen[opfield.name], opfield);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -100,7 +100,11 @@ function findFieldDefs(_ment, mop, mpoint, def) {
|
|
|
100
100
|
(0, jostraca_1.getx)(responses, '201 schema');
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
-
|
|
103
|
+
// A QUERY (RFC 10008) request body is a filter/query schema, not the
|
|
104
|
+
// entity shape, so it must not contribute entity fields. Fields for a
|
|
105
|
+
// QUERY op come from its response only. Other methods (POST/PUT/PATCH)
|
|
106
|
+
// carry the entity in the body, so merge as usual.
|
|
107
|
+
if (requestBody && 'query' !== method) {
|
|
104
108
|
fieldSets = [
|
|
105
109
|
fieldSets,
|
|
106
110
|
(0, jostraca_1.getx)(requestBody, 'content "application/json" schema') ??
|
|
@@ -119,10 +123,17 @@ function findFieldDefs(_ment, mop, mpoint, def) {
|
|
|
119
123
|
const requiredNames = Array.isArray(fieldSet?.required)
|
|
120
124
|
? fieldSet.required : [];
|
|
121
125
|
(0, jostraca_1.each)(fieldSet?.properties, (property) => {
|
|
122
|
-
|
|
123
|
-
|
|
126
|
+
// Don't mutate the parsed schema: a $ref-resolved schema is shared
|
|
127
|
+
// across every operation that references it, so flipping
|
|
128
|
+
// `property.required = true` here would leak this operation's
|
|
129
|
+
// required[] onto all the others. Derive `required` onto a shallow
|
|
130
|
+
// copy instead (matches the Go port, which builds fresh field defs).
|
|
131
|
+
if (!property.required && requiredNames.includes(property.key$)) {
|
|
132
|
+
fielddefs.push({ ...property, required: true });
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
fielddefs.push(property);
|
|
124
136
|
}
|
|
125
|
-
fielddefs.push(property);
|
|
126
137
|
});
|
|
127
138
|
});
|
|
128
139
|
}
|
|
@@ -154,7 +165,7 @@ function findExampleObject(opdef) {
|
|
|
154
165
|
const responses = opdef.responses;
|
|
155
166
|
if (null == responses)
|
|
156
167
|
return null;
|
|
157
|
-
const resdef = responses[
|
|
168
|
+
const resdef = responses['200'] ?? responses['201'];
|
|
158
169
|
if (null == resdef)
|
|
159
170
|
return null;
|
|
160
171
|
// OpenAPI 3.x: content.application/json.example
|
|
@@ -251,13 +262,13 @@ function inferTypeFromValue(value) {
|
|
|
251
262
|
return 'object';
|
|
252
263
|
return 'string';
|
|
253
264
|
}
|
|
254
|
-
function mergeField(
|
|
255
|
-
if (newField.req !==
|
|
256
|
-
|
|
265
|
+
function mergeField(mop, existingField, newField) {
|
|
266
|
+
if (newField.req !== existingField.req) {
|
|
267
|
+
existingField.op[mop.name] = {
|
|
257
268
|
req: newField.req,
|
|
258
269
|
type: newField.type,
|
|
259
270
|
};
|
|
260
271
|
}
|
|
261
|
-
return
|
|
272
|
+
return existingField;
|
|
262
273
|
}
|
|
263
274
|
//# sourceMappingURL=field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/transform/field.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/transform/field.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,7 +101,13 @@ function resolveOp(opname, gent) {
|
|
|
101
101
|
rename: p.rename,
|
|
102
102
|
method: p.method,
|
|
103
103
|
args: {},
|
|
104
|
-
|
|
104
|
+
// Carry the per-path op transform (res `body.<entity>`, req
|
|
105
|
+
// `{<entity>: reqdata}`) computed by the guide step
|
|
106
|
+
// (heuristic01 ResolveTransform) onto the point. It lives on the
|
|
107
|
+
// path's op, not on the op-map entry, so read p.op.transform.
|
|
108
|
+
// Spread into a fresh object so the default-fill below never
|
|
109
|
+
// mutates the shared guide op.transform across points.
|
|
110
|
+
transform: { ...(p.op?.transform ?? {}) },
|
|
105
111
|
select: {
|
|
106
112
|
exist: []
|
|
107
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/transform/operation.ts"],"names":[],"mappings":";;;AAEA,uCAA+B;AAK/B,oCAIiB;AAejB,MAAM,kBAAkB,GAAc,KAAK,WACzC,GAAQ;IAER,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;IAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAG,CAAC,CAAA;IAE9B,IAAI,GAAG,GAAG,YAAY,CAAA;IAEtB,IAAA,eAAI,EAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAiB,EAAE,OAAe,EAAE,EAAE;QACxD,UAAU,CAAC,IAAI,CAAC,CAAA;QAEhB,MAAM,GAAG,GAAe;YACtB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;SACjB,CAAA;QAED,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACtB,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACtB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACxB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACxB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACxB,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAEvB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,GAAG,CAAA;QAE5B,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;AAC1B,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/transform/operation.ts"],"names":[],"mappings":"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"}
|
package/dist/transform/top.js
CHANGED
|
@@ -18,12 +18,48 @@ const topTransform = async function (ctx) {
|
|
|
18
18
|
const kit = apimodel.main[types_1.KIT];
|
|
19
19
|
kit.info = stringifyInfoScalars(def.info ?? {});
|
|
20
20
|
kit.info.servers = stringifyInfoScalars(def.servers ?? []);
|
|
21
|
+
// Public APIs that declare NO authentication (no security schemes, no
|
|
22
|
+
// top-level `security`, and no per-operation `security`) get an explicit
|
|
23
|
+
// no-auth signal in the model. Downstream sdkgen reads it via
|
|
24
|
+
// isAuthActive() (main.kit.info.auth === false) to suppress apikey/auth
|
|
25
|
+
// code, docs and examples. Only the negative signal is emitted: when the
|
|
26
|
+
// spec DOES declare auth we leave `auth` unset so the SDK's own config
|
|
27
|
+
// (main.kit.config.auth) governs. Set AFTER stringifyInfoScalars so the
|
|
28
|
+
// value stays a real boolean rather than the string "false".
|
|
29
|
+
if (!specDeclaresAuth(def)) {
|
|
30
|
+
kit.info.auth = false;
|
|
31
|
+
}
|
|
21
32
|
// Swagger 2.0
|
|
22
33
|
if (def.host) {
|
|
23
34
|
kit.info.servers.push({
|
|
24
35
|
url: (def.schemes?.[0] ?? 'https') + '://' + (0, struct_1.join)([def.host, def.basePath], '/', true)
|
|
25
36
|
});
|
|
26
37
|
}
|
|
38
|
+
// Some specs omit the scheme on `servers[].url` — e.g. the Art
|
|
39
|
+
// Institute of Chicago lists `api.artic.edu/api/v1` (no
|
|
40
|
+
// https://). Go's net/http barfs on that with "unsupported
|
|
41
|
+
// protocol scheme". Default to https when the URL has no scheme
|
|
42
|
+
// and the value isn't a relative path.
|
|
43
|
+
for (const server of kit.info.servers) {
|
|
44
|
+
if (!server || 'string' !== typeof server.url)
|
|
45
|
+
continue;
|
|
46
|
+
const url = server.url.trim();
|
|
47
|
+
if (url === '')
|
|
48
|
+
continue;
|
|
49
|
+
if (/^[a-z][a-z0-9+.-]*:\/\//i.test(url))
|
|
50
|
+
continue; // already has scheme
|
|
51
|
+
// `//host/path` is a protocol-relative URL — meaningless to a
|
|
52
|
+
// backend SDK, treat as missing-scheme and default to https.
|
|
53
|
+
if (url.startsWith('//')) {
|
|
54
|
+
server.url = 'https:' + url;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
// `/path` is path-only (relative to wherever the spec is served).
|
|
58
|
+
// Leave it untouched; it's a valid OpenAPI form.
|
|
59
|
+
if (url.startsWith('/'))
|
|
60
|
+
continue;
|
|
61
|
+
server.url = 'https://' + url;
|
|
62
|
+
}
|
|
27
63
|
// A usable SDK requires a base URL. OpenAPI 3 puts it in `servers[].url`;
|
|
28
64
|
// Swagger 2 derives it from `host` + `basePath`. If neither yields a
|
|
29
65
|
// non-empty url, the generated SDK has no way to issue requests, so fail
|
|
@@ -35,6 +71,40 @@ const topTransform = async function (ctx) {
|
|
|
35
71
|
return { ok: true, msg: 'top' };
|
|
36
72
|
};
|
|
37
73
|
exports.topTransform = topTransform;
|
|
74
|
+
// Does the spec declare any authentication? True if it defines security
|
|
75
|
+
// schemes (OpenAPI 3 `components.securitySchemes` or Swagger 2
|
|
76
|
+
// `securityDefinitions`), a top-level `security` requirement, or a
|
|
77
|
+
// per-operation `security` requirement. Used to emit a no-auth signal
|
|
78
|
+
// (info.auth: false) for fully public APIs.
|
|
79
|
+
function specDeclaresAuth(def) {
|
|
80
|
+
if (null == def || 'object' !== typeof def)
|
|
81
|
+
return false;
|
|
82
|
+
const nonEmptyObj = (v) => null != v && 'object' === typeof v && Object.keys(v).length > 0;
|
|
83
|
+
// OpenAPI 3 security schemes.
|
|
84
|
+
if (nonEmptyObj(def.components?.securitySchemes))
|
|
85
|
+
return true;
|
|
86
|
+
// Swagger 2 security definitions.
|
|
87
|
+
if (nonEmptyObj(def.securityDefinitions))
|
|
88
|
+
return true;
|
|
89
|
+
// Top-level security requirement.
|
|
90
|
+
if (Array.isArray(def.security) && def.security.length > 0)
|
|
91
|
+
return true;
|
|
92
|
+
// Per-operation security requirement.
|
|
93
|
+
const paths = def.paths;
|
|
94
|
+
if (paths && 'object' === typeof paths) {
|
|
95
|
+
for (const pathItem of Object.values(paths)) {
|
|
96
|
+
if (null == pathItem || 'object' !== typeof pathItem)
|
|
97
|
+
continue;
|
|
98
|
+
for (const op of Object.values(pathItem)) {
|
|
99
|
+
if (op && 'object' === typeof op &&
|
|
100
|
+
Array.isArray(op.security) && op.security.length > 0) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
38
108
|
// OpenAPI's `info` object (and the `servers` array) declares every scalar
|
|
39
109
|
// leaf as a string. YAML/JSON parsers don't enforce that — `version: 2`
|
|
40
110
|
// without quotes parses as the number 2, `version: true` as a boolean.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"top.js","sourceRoot":"","sources":["../../src/transform/top.ts"],"names":[],"mappings":";;;AACA,2CAAqC;AAErC,oCAA8B;AAmB9B,6BAA6B;AAC7B,yCAAyC;AACzC,8BAA8B;AAC9B,gCAAgC;AAGhC,uBAAuB;AACvB,kBAAkB;AAClB,oCAAoC;AAEpC,uBAAuB;AACvB,iCAAiC;AACjC,IAAI;AAGJ,MAAM,YAAY,GAAG,KAAK,WACxB,GAAQ;IAER,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;IAC7B,MAAM,GAAG,GAAa,QAAQ,CAAC,IAAI,CAAC,WAAG,CAAC,CAAA;IAExC,GAAG,CAAC,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IAC/C,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IAE1D,cAAc;IACd,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACpB,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,IAAA,aAAI,EAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC;SACvF,CAAC,CAAA;IACJ,CAAC;IAED,0EAA0E;IAC1E,qEAAqE;IACrE,yEAAyE;IACzE,uDAAuD;IACvD,MAAM,cAAc,GAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;IACtD,IAAI,IAAI,IAAI,cAAc,IAAI,EAAE,KAAK,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAA;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;AACjC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"top.js","sourceRoot":"","sources":["../../src/transform/top.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -312,6 +312,9 @@ declare const ModelShape: {
|
|
|
312
312
|
guide: {};
|
|
313
313
|
entity: {};
|
|
314
314
|
};
|
|
315
|
+
custom: {
|
|
316
|
+
plurals: {};
|
|
317
|
+
};
|
|
315
318
|
};
|
|
316
319
|
};
|
|
317
320
|
valid: <V>(root?: V | undefined, ctx?: import("shape").Context) => root is V & {
|
|
@@ -324,6 +327,9 @@ declare const ModelShape: {
|
|
|
324
327
|
guide: {};
|
|
325
328
|
entity: {};
|
|
326
329
|
};
|
|
330
|
+
custom: {
|
|
331
|
+
plurals: {};
|
|
332
|
+
};
|
|
327
333
|
};
|
|
328
334
|
};
|
|
329
335
|
match(root?: any, ctx?: import("shape").Context): boolean;
|
|
@@ -374,6 +380,9 @@ declare const ModelShape: {
|
|
|
374
380
|
guide: {};
|
|
375
381
|
entity: {};
|
|
376
382
|
};
|
|
383
|
+
custom: {
|
|
384
|
+
plurals: {};
|
|
385
|
+
};
|
|
377
386
|
};
|
|
378
387
|
}>;
|
|
379
388
|
stringify(...rest: any[]): string;
|
|
@@ -410,6 +419,9 @@ declare const OpenModelShape: {
|
|
|
410
419
|
guide: {};
|
|
411
420
|
entity: {};
|
|
412
421
|
};
|
|
422
|
+
custom: {
|
|
423
|
+
plurals: {};
|
|
424
|
+
};
|
|
413
425
|
};
|
|
414
426
|
};
|
|
415
427
|
valid: <V_1>(root?: V_1 | undefined, ctx?: import("shape").Context) => root is V_1 & {
|
|
@@ -422,6 +434,9 @@ declare const OpenModelShape: {
|
|
|
422
434
|
guide: {};
|
|
423
435
|
entity: {};
|
|
424
436
|
};
|
|
437
|
+
custom: {
|
|
438
|
+
plurals: {};
|
|
439
|
+
};
|
|
425
440
|
};
|
|
426
441
|
};
|
|
427
442
|
match(root?: any, ctx?: import("shape").Context): boolean;
|
|
@@ -472,6 +487,9 @@ declare const OpenModelShape: {
|
|
|
472
487
|
guide: {};
|
|
473
488
|
entity: {};
|
|
474
489
|
};
|
|
490
|
+
custom: {
|
|
491
|
+
plurals: {};
|
|
492
|
+
};
|
|
475
493
|
};
|
|
476
494
|
}>;
|
|
477
495
|
stringify(...rest: any[]): string;
|
|
@@ -531,6 +549,9 @@ declare const OpenModelShape: {
|
|
|
531
549
|
guide: {};
|
|
532
550
|
entity: {};
|
|
533
551
|
};
|
|
552
|
+
custom: {
|
|
553
|
+
plurals: {};
|
|
554
|
+
};
|
|
534
555
|
};
|
|
535
556
|
};
|
|
536
557
|
valid: <V>(root?: V | undefined, ctx?: import("shape").Context) => root is V & {
|
|
@@ -543,6 +564,9 @@ declare const OpenModelShape: {
|
|
|
543
564
|
guide: {};
|
|
544
565
|
entity: {};
|
|
545
566
|
};
|
|
567
|
+
custom: {
|
|
568
|
+
plurals: {};
|
|
569
|
+
};
|
|
546
570
|
};
|
|
547
571
|
};
|
|
548
572
|
match(root?: any, ctx?: import("shape").Context): boolean;
|
|
@@ -593,6 +617,9 @@ declare const OpenModelShape: {
|
|
|
593
617
|
guide: {};
|
|
594
618
|
entity: {};
|
|
595
619
|
};
|
|
620
|
+
custom: {
|
|
621
|
+
plurals: {};
|
|
622
|
+
};
|
|
596
623
|
};
|
|
597
624
|
}>;
|
|
598
625
|
stringify(...rest: any[]): string;
|
|
@@ -1050,7 +1077,7 @@ type Warner = {
|
|
|
1050
1077
|
} & Record<string, any>)[];
|
|
1051
1078
|
point: string;
|
|
1052
1079
|
} & ((details: Record<string, any>) => void);
|
|
1053
|
-
type MethodName = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS' | '';
|
|
1080
|
+
type MethodName = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS' | 'QUERY' | '';
|
|
1054
1081
|
type Guide = {
|
|
1055
1082
|
metrics: GuideMetrics;
|
|
1056
1083
|
entity: Record<string, GuideEntity>;
|
package/dist/types.js
CHANGED
|
@@ -26,6 +26,14 @@ const ModelShape = (0, shape_1.Shape)({
|
|
|
26
26
|
guide: {},
|
|
27
27
|
entity: {},
|
|
28
28
|
},
|
|
29
|
+
// Per-model overrides. `custom.plurals` is a plural → singular map
|
|
30
|
+
// consulted by depluralize() before the built-in IRREGULARS table
|
|
31
|
+
// and rule chain. Use for API-specific terminology where the
|
|
32
|
+
// generic English rules misclassify a name — e.g. {axes: axe}
|
|
33
|
+
// for a fitness API where the singular is "axe" not "axis".
|
|
34
|
+
custom: {
|
|
35
|
+
plurals: {},
|
|
36
|
+
},
|
|
29
37
|
}
|
|
30
38
|
});
|
|
31
39
|
const OpenModelShape = (0, shape_1.Shape)((0, shape_1.Open)(ModelShape), { name: 'Model' });
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;AAK5C,iCAAwC;AAGxC,MAAM,GAAG,GAAG,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;AAK5C,iCAAwC;AAGxC,MAAM,GAAG,GAAG,KAAK,CAAA;AAqPf,kBAAG;AArNL,MAAM,YAAY,GAAG,IAAA,aAAK,EAAC;IACzB,IAAI,EAAE;QACJ,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;CACF,CAAC,CAAA;AACF,MAAM,gBAAgB,GAAG,IAAA,aAAK,EAAC,IAAA,YAAI,EAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AA8MrE,4CAAgB;AAxMlB,MAAM,UAAU,GAAG,IAAA,aAAK,EAAC;IACvB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,IAAI,EAAE;QACJ,CAAC,GAAG,CAAC,EAAE,EAAE;QACT,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;SACX;QACD,mEAAmE;QACnE,kEAAkE;QAClE,6DAA6D;QAC7D,8DAA8D;QAC9D,4DAA4D;QAC5D,MAAM,EAAE;YACN,OAAO,EAAE,EAAE;SACZ;KACF;CACF,CAAC,CAAA;AACF,MAAM,cAAc,GAAG,IAAA,aAAK,EAAC,IAAA,YAAI,EAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;AAqL/D,wCAAc;AAhLhB,MAAM,UAAU,GAAG,IAAA,aAAK,EAAC;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,EAAE;QACP,EAAE,EAAE,IAAA,WAAG,GAAE;QACT,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,EAAE;QACb,KAAK,EAAE;YACL,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,IAAI;SACV;KACF;CACF,CAAC,CAAA;AACF,MAAM,cAAc,GAAG,IAAA,aAAK,EAAC,IAAA,YAAI,EAAC,UAAU,CAAC,CAAC,CAAA;AA8J5C,wCAAc"}
|
package/dist/utility.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ declare function getdlog(tagin?: string, filepath?: string): ((...args: any[]) =
|
|
|
13
13
|
};
|
|
14
14
|
declare function loadFile(path: string, what: string, fs: FsUtil, log: Log): string;
|
|
15
15
|
declare function formatJsonSrc(jsonsrc: string): string;
|
|
16
|
+
declare function setCustomPlurals(plurals: Record<string, string> | undefined | null): void;
|
|
17
|
+
declare function clearCustomPlurals(): void;
|
|
16
18
|
declare function depluralize(word: string): string;
|
|
17
19
|
declare function find(obj: any, qkey: string): any[];
|
|
18
20
|
declare function capture(data: any, shape: any): Record<string, any>;
|
|
@@ -51,4 +53,4 @@ declare function getModelPath(model: any, path: string, flags?: {
|
|
|
51
53
|
only_active?: boolean;
|
|
52
54
|
}): any;
|
|
53
55
|
export type { PathMatch };
|
|
54
|
-
export { nom, getdlog, loadFile, formatJsonSrc, depluralize, find, capture, pathMatch, makeWarner, formatJSONIC, validator, canonize, sanitizeSlug, slugToPascalCase, transliterate, cleanComponentName, ensureMinEntityName, inferFieldType, normalizeFieldName, debugpath, findPathsWithPrefix, writeFileSyncWarn, warnOnError, relativizePath, getModelPath, sortedKeys, sortedEntries, };
|
|
56
|
+
export { nom, getdlog, loadFile, formatJsonSrc, depluralize, setCustomPlurals, clearCustomPlurals, find, capture, pathMatch, makeWarner, formatJSONIC, validator, canonize, sanitizeSlug, slugToPascalCase, transliterate, cleanComponentName, ensureMinEntityName, inferFieldType, normalizeFieldName, debugpath, findPathsWithPrefix, writeFileSyncWarn, warnOnError, relativizePath, getModelPath, sortedKeys, sortedEntries, };
|