@speclynx/apidom-ns-json-schema-2019-09 4.10.1 → 4.12.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/CHANGELOG.md +12 -0
- package/dist/apidom-ns-json-schema-2019-09.browser.js +40 -8
- package/dist/apidom-ns-json-schema-2019-09.browser.min.js +1 -1
- package/package.json +10 -10
- package/src/elements/JSONSchema.cjs +3 -1
- package/src/elements/LinkDescription.cjs +3 -1
- package/src/index.cjs +232 -41
- package/src/media-types.cjs +3 -1
- package/src/namespace.cjs +3 -1
- package/src/predicates.cjs +22 -5
- package/src/refractor/index.cjs +3 -1
- package/src/refractor/inspect.cjs +15 -3
- package/src/refractor/plugins/replace-empty-element.cjs +3 -1
- package/src/refractor/specification.cjs +3 -1
- package/src/refractor/toolbox.cjs +3 -1
- package/src/refractor/visitors/json-schema/$defsVisitor.cjs +3 -1
- package/src/refractor/visitors/json-schema/$refVisitor.cjs +3 -1
- package/src/refractor/visitors/json-schema/$vocabularyVisitor.cjs +3 -1
- package/src/refractor/visitors/json-schema/AllOfVisitor.cjs +3 -1
- package/src/refractor/visitors/json-schema/AnyOfVisitor.cjs +3 -1
- package/src/refractor/visitors/json-schema/DependentRequiredVisitor.cjs +3 -1
- package/src/refractor/visitors/json-schema/DependentSchemasVisitor.cjs +3 -1
- package/src/refractor/visitors/json-schema/ItemsVisitor.cjs +3 -1
- package/src/refractor/visitors/json-schema/OneOfVisitor.cjs +3 -1
- package/src/refractor/visitors/json-schema/PatternPropertiesVisitor.cjs +3 -1
- package/src/refractor/visitors/json-schema/PropertiesVisitor.cjs +3 -1
- package/src/refractor/visitors/json-schema/bases.cjs +3 -1
- package/src/refractor/visitors/json-schema/index.cjs +3 -1
- package/src/refractor/visitors/json-schema/link-description/index.cjs +3 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [4.12.0](https://github.com/speclynx/apidom/compare/v4.11.1...v4.12.0) (2026-06-23)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @speclynx/apidom-ns-json-schema-2019-09
|
|
9
|
+
|
|
10
|
+
## [4.11.1](https://github.com/speclynx/apidom/compare/v4.11.0...v4.11.1) (2026-06-10)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @speclynx/apidom-ns-json-schema-2019-09
|
|
13
|
+
|
|
14
|
+
# [4.11.0](https://github.com/speclynx/apidom/compare/v4.10.1...v4.11.0) (2026-06-10)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @speclynx/apidom-ns-json-schema-2019-09
|
|
17
|
+
|
|
6
18
|
## [4.10.1](https://github.com/speclynx/apidom/compare/v4.10.0...v4.10.1) (2026-05-20)
|
|
7
19
|
|
|
8
20
|
**Note:** Version bump only for package @speclynx/apidom-ns-json-schema-2019-09
|
|
@@ -23315,6 +23315,14 @@ class Path {
|
|
|
23315
23315
|
*/
|
|
23316
23316
|
inList;
|
|
23317
23317
|
|
|
23318
|
+
/**
|
|
23319
|
+
* True when this node is a non-descending revisit of an already-visited node
|
|
23320
|
+
* (only under skipVisited: 'enter-only'). Children are not traversed.
|
|
23321
|
+
* Set on both the enter and the matching leave phase, so it is meaningful
|
|
23322
|
+
* in either phase.
|
|
23323
|
+
*/
|
|
23324
|
+
revisited = false;
|
|
23325
|
+
|
|
23318
23326
|
/**
|
|
23319
23327
|
* Internal state for traversal control.
|
|
23320
23328
|
*/
|
|
@@ -23899,6 +23907,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
23899
23907
|
|
|
23900
23908
|
|
|
23901
23909
|
|
|
23910
|
+
/**
|
|
23911
|
+
* Controls handling of already-visited nodes during traversal.
|
|
23912
|
+
* @public
|
|
23913
|
+
*/
|
|
23902
23914
|
/**
|
|
23903
23915
|
* Options for the traverse function.
|
|
23904
23916
|
* @public
|
|
@@ -23906,6 +23918,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
23906
23918
|
// =============================================================================
|
|
23907
23919
|
// Internal types for generator
|
|
23908
23920
|
// =============================================================================
|
|
23921
|
+
|
|
23922
|
+
const normalizeSkipVisited = v => {
|
|
23923
|
+
if (v === true) return 'skip';
|
|
23924
|
+
if (v === false || v === undefined) return 'never';
|
|
23925
|
+
return v;
|
|
23926
|
+
};
|
|
23909
23927
|
// =============================================================================
|
|
23910
23928
|
// Core generator
|
|
23911
23929
|
// =============================================================================
|
|
@@ -23923,7 +23941,7 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
23923
23941
|
mutationFn
|
|
23924
23942
|
} = options;
|
|
23925
23943
|
const keyMapIsFunction = typeof keyMap === 'function';
|
|
23926
|
-
const visitedNodes = skipVisited ? new WeakSet() : null;
|
|
23944
|
+
const visitedNodes = skipVisited !== 'never' ? new WeakSet() : null;
|
|
23927
23945
|
let stack;
|
|
23928
23946
|
let inArray = Array.isArray(root);
|
|
23929
23947
|
let keys = [root];
|
|
@@ -23938,6 +23956,7 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
23938
23956
|
index += 1;
|
|
23939
23957
|
const isLeaving = index === keys.length;
|
|
23940
23958
|
let key;
|
|
23959
|
+
let revisitNoDescend = false;
|
|
23941
23960
|
const isEdited = isLeaving && edits.length !== 0;
|
|
23942
23961
|
if (isLeaving) {
|
|
23943
23962
|
key = ancestors.length === 0 ? undefined : currentPath?.key;
|
|
@@ -23979,6 +23998,7 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
23979
23998
|
edits = stack.edits;
|
|
23980
23999
|
const parentInArray = stack.inArray;
|
|
23981
24000
|
parentPath = stack.parentPath;
|
|
24001
|
+
revisitNoDescend = stack.revisitNoDescend;
|
|
23982
24002
|
stack = stack.prev;
|
|
23983
24003
|
|
|
23984
24004
|
// Push the edited node to parent's edits for propagation up the tree
|
|
@@ -24010,15 +24030,22 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
24010
24030
|
}
|
|
24011
24031
|
|
|
24012
24032
|
// Skip already-visited nodes (handles DAG structures from cloneShallow)
|
|
24013
|
-
if (skipVisited && !isLeaving) {
|
|
24033
|
+
if (skipVisited !== 'never' && !isLeaving) {
|
|
24014
24034
|
if (visitedNodes.has(node)) {
|
|
24015
|
-
|
|
24035
|
+
if (skipVisited === 'enter-only') {
|
|
24036
|
+
// fire enter/leave for this occurrence, but don't re-descend
|
|
24037
|
+
revisitNoDescend = true;
|
|
24038
|
+
} else {
|
|
24039
|
+
continue;
|
|
24040
|
+
}
|
|
24041
|
+
} else {
|
|
24042
|
+
visitedNodes.add(node);
|
|
24016
24043
|
}
|
|
24017
|
-
visitedNodes.add(node);
|
|
24018
24044
|
}
|
|
24019
24045
|
|
|
24020
24046
|
// Always create Path for the current node (needed for parentPath chain)
|
|
24021
24047
|
currentPath = new _Path_mjs__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
|
|
24048
|
+
currentPath.revisited = revisitNoDescend;
|
|
24022
24049
|
const visitFn = (0,_visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
|
|
24023
24050
|
if (visitFn) {
|
|
24024
24051
|
// Assign state to visitor
|
|
@@ -24082,10 +24109,13 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
24082
24109
|
keys,
|
|
24083
24110
|
edits,
|
|
24084
24111
|
parentPath,
|
|
24112
|
+
revisitNoDescend,
|
|
24085
24113
|
prev: stack
|
|
24086
24114
|
};
|
|
24087
24115
|
inArray = Array.isArray(node);
|
|
24088
|
-
if (
|
|
24116
|
+
if (revisitNoDescend) {
|
|
24117
|
+
keys = [];
|
|
24118
|
+
} else if (inArray) {
|
|
24089
24119
|
keys = node;
|
|
24090
24120
|
} else if (keyMapIsFunction) {
|
|
24091
24121
|
keys = keyMap(node);
|
|
@@ -24160,7 +24190,7 @@ const traverse = (root, visitor, options = {}) => {
|
|
|
24160
24190
|
nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
|
|
24161
24191
|
nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
|
|
24162
24192
|
detectCycles: options.detectCycles ?? true,
|
|
24163
|
-
skipVisited: options.skipVisited
|
|
24193
|
+
skipVisited: normalizeSkipVisited(options.skipVisited),
|
|
24164
24194
|
mutable: options.mutable ?? false,
|
|
24165
24195
|
mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
|
|
24166
24196
|
};
|
|
@@ -24192,7 +24222,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
|
|
|
24192
24222
|
nodePredicate: options.nodePredicate ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.isNode,
|
|
24193
24223
|
nodeCloneFn: options.nodeCloneFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
|
|
24194
24224
|
detectCycles: options.detectCycles ?? true,
|
|
24195
|
-
skipVisited: options.skipVisited
|
|
24225
|
+
skipVisited: normalizeSkipVisited(options.skipVisited),
|
|
24196
24226
|
mutable: options.mutable ?? false,
|
|
24197
24227
|
mutationFn: options.mutationFn ?? _visitors_mjs__WEBPACK_IMPORTED_MODULE_3__.mutateNode
|
|
24198
24228
|
};
|
|
@@ -24660,7 +24690,9 @@ mergeVisitors[Symbol.for('nodejs.util.promisify.custom')] = mergeVisitorsAsync;
|
|
|
24660
24690
|
* @internal
|
|
24661
24691
|
*/
|
|
24662
24692
|
function createPathProxy(originalPath, currentNode) {
|
|
24663
|
-
|
|
24693
|
+
const proxy = new _Path_mjs__WEBPACK_IMPORTED_MODULE_4__.Path(currentNode, originalPath.parent, originalPath.parentPath, originalPath.key, originalPath.inList);
|
|
24694
|
+
proxy.revisited = originalPath.revisited;
|
|
24695
|
+
return proxy;
|
|
24664
24696
|
}
|
|
24665
24697
|
|
|
24666
24698
|
/***/ }
|