@schmock/faker 2.2.3 → 2.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/LICENSE +21 -0
- package/README.md +45 -0
- package/dist/constants.d.ts +82 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/field-mappings.d.ts.map +1 -1
- package/dist/field-name-matcher.d.ts +19 -0
- package/dist/field-name-matcher.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/jsf-config.d.ts +27 -2
- package/dist/jsf-config.d.ts.map +1 -1
- package/dist/output-limits.d.ts +3 -0
- package/dist/output-limits.d.ts.map +1 -0
- package/dist/overrides.d.ts +2 -1
- package/dist/overrides.d.ts.map +1 -1
- package/dist/schema-children.d.ts +14 -0
- package/dist/schema-children.d.ts.map +1 -0
- package/dist/schema-enhancement.d.ts +1 -0
- package/dist/schema-enhancement.d.ts.map +1 -1
- package/dist/validation.d.ts +24 -5
- package/dist/validation.d.ts.map +1 -1
- package/package.json +19 -9
- package/dist/constants.js +0 -8
- package/dist/field-mappings.js +0 -1107
- package/dist/field-name-matcher.js +0 -149
- package/dist/jsf-config.js +0 -35
- package/dist/overrides.js +0 -131
- package/dist/schema-enhancement.js +0 -89
- package/dist/test-utils.d.ts +0 -57
- package/dist/test-utils.d.ts.map +0 -1
- package/dist/test-utils.js +0 -271
- package/dist/validation.js +0 -300
- package/src/advanced-features.test.ts +0 -912
- package/src/audit-faker-args.test.ts +0 -97
- package/src/constants.d.ts.map +0 -1
- package/src/constants.ts +0 -9
- package/src/data-quality.test.ts +0 -415
- package/src/error-handling.test.ts +0 -504
- package/src/field-mappings.test.ts +0 -351
- package/src/field-mappings.ts +0 -1141
- package/src/field-name-matcher.test.ts +0 -292
- package/src/field-name-matcher.ts +0 -188
- package/src/index.d.ts.map +0 -1
- package/src/index.test.ts +0 -1218
- package/src/index.ts +0 -168
- package/src/integration.test.ts +0 -634
- package/src/jsf-config.d.ts.map +0 -1
- package/src/jsf-config.ts +0 -48
- package/src/overrides.d.ts.map +0 -1
- package/src/overrides.property.test.ts +0 -172
- package/src/overrides.test.ts +0 -38
- package/src/overrides.ts +0 -176
- package/src/performance.test.ts +0 -494
- package/src/plugin-integration.test.ts +0 -575
- package/src/post-process.test.ts +0 -151
- package/src/real-world.test.ts +0 -636
- package/src/schema-enhancement.d.ts.map +0 -1
- package/src/schema-enhancement.test.ts +0 -216
- package/src/schema-enhancement.ts +0 -128
- package/src/steps/deterministic-seeds.steps.ts +0 -35
- package/src/steps/faker-plugin.steps.ts +0 -109
- package/src/test-utils.ts +0 -365
- package/src/validation.d.ts.map +0 -1
- package/src/validation.ts +0 -417
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { JSONSchema7 } from "json-schema";
|
|
2
|
+
export interface SchemaChild {
|
|
3
|
+
schema: JSONSchema7;
|
|
4
|
+
path: string;
|
|
5
|
+
depthCost: 0 | 1;
|
|
6
|
+
frameCost: 0 | 1;
|
|
7
|
+
typedContinuation: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Enumerate every schema-bearing keyword forwarded to json-schema-faker.
|
|
11
|
+
* Validation, reference indexing, and path analysis all consume this one list.
|
|
12
|
+
*/
|
|
13
|
+
export declare function collectSchemaChildren(schema: JSONSchema7, path: string): SchemaChild[];
|
|
14
|
+
//# sourceMappingURL=schema-children.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-children.d.ts","sourceRoot":"","sources":["../src/schema-children.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAUD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,GACX,WAAW,EAAE,CAmGf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-enhancement.d.ts","sourceRoot":"","sources":["../src/schema-enhancement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-enhancement.d.ts","sourceRoot":"","sources":["../src/schema-enhancement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA4F/C,gFAAgF;AAChF,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,WAAW,GAClB,WAAW,CAGb"}
|
package/dist/validation.d.ts
CHANGED
|
@@ -1,15 +1,34 @@
|
|
|
1
1
|
import type { JSONSchema7 } from "json-schema";
|
|
2
2
|
export declare function isJSONSchema7(value: unknown): value is JSONSchema7;
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
|
|
4
|
+
* Type-aware check that tolerates the union form the OpenAPI normalizer emits
|
|
5
|
+
* for nullable schemas (`type: ["array", "null"]`).
|
|
6
|
+
*/
|
|
7
|
+
export declare function hasType(schema: {
|
|
8
|
+
type?: unknown;
|
|
9
|
+
}, type: string): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Validate JSON Schema structure and enforce resource limits.
|
|
12
|
+
*
|
|
13
|
+
* Walks every distinct schema node and edge exactly once — `properties`,
|
|
14
|
+
* `patternProperties`, `additionalProperties`, `propertyNames`, `items` (object
|
|
15
|
+
* and tuple forms), `additionalItems`, `contains`, `allOf`/`anyOf`/`oneOf`,
|
|
16
|
+
* `not`, `if`/`then`/`else`, `definitions`, `$defs` and the schema form of
|
|
17
|
+
* `dependencies` — checking structure, faker methods, cycles, nesting depth,
|
|
18
|
+
* array sizes and generation budgets. Local JSON Pointer and embedded `$id`
|
|
19
|
+
* references become graph edges: active-path re-entry is a cycle, while a
|
|
20
|
+
* completed target is a shared DAG node whose memoized estimate is charged at
|
|
21
|
+
* every output site. Validation therefore stays O(nodes + edges).
|
|
22
|
+
*
|
|
23
|
+
* References outside the indexed schema and unresolvable references are left
|
|
24
|
+
* for json-schema-faker to report.
|
|
25
|
+
*
|
|
7
26
|
* @param schema - JSON Schema to validate
|
|
8
|
-
* @param path -
|
|
27
|
+
* @param path - Path label used in error messages
|
|
9
28
|
* @throws {SchemaValidationError} When schema structure is invalid
|
|
10
29
|
* @throws {ResourceLimitError} When schema exceeds safety limits
|
|
11
30
|
*/
|
|
12
|
-
export declare function validateSchema(schema: JSONSchema7, path?: string): void;
|
|
31
|
+
export declare function validateSchema(schema: JSONSchema7, path?: string, explicitCount?: number): void;
|
|
13
32
|
/**
|
|
14
33
|
* Validate that faker method string references a valid Faker.js API
|
|
15
34
|
* Checks format (namespace.method) and validates against known namespaces
|
package/dist/validation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAyB,MAAM,aAAa,CAAC;AA2BtE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAKzE;AAyCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,IAAI,SAAM,EACV,aAAa,CAAC,EAAE,MAAM,GACrB,IAAI,CA2FN;AAs9BD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAmC7D"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@schmock/faker",
|
|
3
3
|
"description": "Faker-powered automatic data generation for Schmock",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.3.1",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/khalic-lab/schmock.git",
|
|
9
|
+
"directory": "packages/faker"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/khalic-lab/schmock/tree/main/packages/faker#readme",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/khalic-lab/schmock/issues"
|
|
14
|
+
},
|
|
6
15
|
"main": "./dist/index.js",
|
|
7
16
|
"types": "./dist/index.d.ts",
|
|
8
17
|
"files": [
|
|
9
|
-
"dist"
|
|
10
|
-
"src"
|
|
18
|
+
"dist"
|
|
11
19
|
],
|
|
12
20
|
"exports": {
|
|
13
21
|
".": {
|
|
@@ -18,10 +26,11 @@
|
|
|
18
26
|
"./package.json": "./package.json"
|
|
19
27
|
},
|
|
20
28
|
"scripts": {
|
|
21
|
-
"
|
|
22
|
-
"build
|
|
29
|
+
"clean": "rm -rf dist && rm -f tsconfig.tsbuildinfo",
|
|
30
|
+
"build": "bun run clean && bun run build:lib && bun run build:types",
|
|
31
|
+
"build:lib": "bun build --minify --target browser --outdir=dist src/index.ts --external @faker-js/faker --external @schmock/core",
|
|
23
32
|
"build:types": "tsc -p tsconfig.json",
|
|
24
|
-
"test": "vitest",
|
|
33
|
+
"test": "vitest run",
|
|
25
34
|
"test:watch": "vitest --watch",
|
|
26
35
|
"test:bdd": "vitest run --config vitest.config.bdd.ts",
|
|
27
36
|
"lint": "biome check src/*.ts",
|
|
@@ -30,15 +39,16 @@
|
|
|
30
39
|
},
|
|
31
40
|
"license": "MIT",
|
|
32
41
|
"dependencies": {
|
|
42
|
+
"@types/json-schema": "^7.0.15",
|
|
33
43
|
"@faker-js/faker": "^10.5.0",
|
|
34
|
-
"json-schema-faker": "^0.6.2"
|
|
44
|
+
"json-schema-faker": "^0.6.2",
|
|
45
|
+
"json-schema-faker-private": "https://registry.npmjs.org/json-schema-faker/-/json-schema-faker-0.6.2.tgz"
|
|
35
46
|
},
|
|
36
47
|
"peerDependencies": {
|
|
37
|
-
"@schmock/core": "^2.
|
|
48
|
+
"@schmock/core": "^2.3.1"
|
|
38
49
|
},
|
|
39
50
|
"devDependencies": {
|
|
40
51
|
"@amiceli/vitest-cucumber": "^7.0.0",
|
|
41
|
-
"@types/json-schema": "^7.0.15",
|
|
42
52
|
"@types/node": "^26.1.0",
|
|
43
53
|
"vitest": "^4.1.9"
|
|
44
54
|
}
|
package/dist/constants.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
// Resource limits for safety
|
|
2
|
-
export const MAX_ARRAY_SIZE = 10000;
|
|
3
|
-
export const MAX_NESTING_DEPTH = 10; // Reasonable limit for schema nesting
|
|
4
|
-
export const DEFAULT_ARRAY_COUNT = 3; // Default items to generate when not specified
|
|
5
|
-
export const DEEP_NESTING_THRESHOLD = 3; // Depth at which to check for memory risks
|
|
6
|
-
export const LARGE_ARRAY_THRESHOLD = 100; // Array size considered "large"
|
|
7
|
-
// Data quality tuning
|
|
8
|
-
export const NULLABLE_NULL_PROBABILITY = 0.05; // 5% chance nullable fields are null
|