Linux v69820.1blu.de 4.15.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
Apache/2.4.58
Server IP : 195.90.215.149 & Your IP : 216.73.217.80
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
nodejs /
yaml /
browser /
dist /
doc /
Delete
Unzip
Name
Size
Permission
Date
Action
Document.js
12.6
KB
-rw-r--r--
2024-02-26 08:46
anchors.js
2.24
KB
-rw-r--r--
2024-02-26 08:46
applyReviver.js
1.8
KB
-rw-r--r--
2024-02-26 08:46
createNode.js
3.01
KB
-rw-r--r--
2024-02-26 08:46
directives.js
6.04
KB
-rw-r--r--
2024-02-26 08:46
Save
Rename
import { isScalar, isCollection } from '../nodes/identity.js'; import { visit } from '../visit.js'; /** * Verify that the input string is a valid anchor. * * Will throw on errors. */ function anchorIsValid(anchor) { if (/[\x00-\x19\s,[\]{}]/.test(anchor)) { const sa = JSON.stringify(anchor); const msg = `Anchor must not contain whitespace or control characters: ${sa}`; throw new Error(msg); } return true; } function anchorNames(root) { const anchors = new Set(); visit(root, { Value(_key, node) { if (node.anchor) anchors.add(node.anchor); } }); return anchors; } /** Find a new anchor name with the given `prefix` and a one-indexed suffix. */ function findNewAnchor(prefix, exclude) { for (let i = 1; true; ++i) { const name = `${prefix}${i}`; if (!exclude.has(name)) return name; } } function createNodeAnchors(doc, prefix) { const aliasObjects = []; const sourceObjects = new Map(); let prevAnchors = null; return { onAnchor: (source) => { aliasObjects.push(source); if (!prevAnchors) prevAnchors = anchorNames(doc); const anchor = findNewAnchor(prefix, prevAnchors); prevAnchors.add(anchor); return anchor; }, /** * With circular references, the source node is only resolved after all * of its child nodes are. This is why anchors are set only after all of * the nodes have been created. */ setAnchors: () => { for (const source of aliasObjects) { const ref = sourceObjects.get(source); if (typeof ref === 'object' && ref.anchor && (isScalar(ref.node) || isCollection(ref.node))) { ref.node.anchor = ref.anchor; } else { const error = new Error('Failed to resolve repeated object (this should not happen)'); error.source = source; throw error; } } }, sourceObjects }; } export { anchorIsValid, anchorNames, createNodeAnchors, findNewAnchor };