Source: lib/core/reactive/symbols.js

/**
 * @file symbols.js
 * @description The symbols that mark and unwrap reactive values.
 *
 * These live in their own module so that consumers which only need to
 * recognise a reactive value — rather than create one — can do so without
 * importing `proxyHandler.js`. `proxyHandler.js` re-exports every name here,
 * so this split is invisible to existing importers.
 * @module lib/core/reactive/symbols
 */

/**
 * Reads the raw target behind a reactive proxy.
 * @type {symbol}
 */
export const RAW_SYMBOL = Symbol('raw');

/**
 * Marks a value as an Avenx reactive proxy.
 * @type {symbol}
 */
export const IS_REACTIVE_PROXY = Symbol('avenx.reactive.proxy');

/**
 * Links a raw target back to the proxy that wraps it, so a value reached by
 * two routes yields one stable proxy identity.
 * @type {symbol}
 */
export const PROXY_REF_SYMBOL = Symbol.for('__avenx_proxy_ref__');

/**
 * Marks a value that must never be wrapped in a reactive proxy.
 * @type {symbol}
 */
export const NON_REACTIVE_SYMBOL = Symbol.for('avenx.reactive.skip');