Socket
Socket
Sign inDemoInstall

@contrast/core

Package Overview
Dependencies
17
Maintainers
9
Versions
52
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @contrast/core

Preconfigured Contrast agent core services and models


Version published
Maintainers
9
Created

Readme

Source

@contrast/core

Discovers Contrast configuration data (yaml, env vars, etc) and preconfigures a common set of APIs to be used for agent and tooling development.

Basic Usage

The module exports a factory function.

const core = require('@contrast/core')();

What You Get

  • Logging

    core.logger.info('...');
    

    See more about the @contrast/logger service here.

  • Monkey-patching

    core.patcher.patch(res, 'end', {
      name: 'http.ServerResponse.end',
      patchType: 'http-things',
      pre(data) {
        // ...
      }
    });
    

    See more about the @contrast/patcher service here.

  • Code rewriting

    core.rewriter.addTransforms({
      CallExpression(path, state) {
        // ...
      };
    });
    core.rewriter.rewrite('function() { ...');
    

    See more about the @contrast/rewriter service here.

  • Dependency hooks

    core.depHooks.resolve({ name: 'http' }, http => {
      // implemention details
    });
    

    See more about the @contrast/dep-hooks service here.

  • Models and factories

    The construction of model data can rely on configuration and therefore can be stateful. So, we provide the models and their factories as services that can be used by consumers as if static.

    // stackframe filtration is configurable, thus stateful
    const snap = core.models.StacktraceFactory.createSnapshot();
    const frames = snap();
    

    See more about the @contrast/models service here.

  • Report messages

    // configuration will tell which reporters become active
    core.reporters.install();
    core.messages.emit('ProtectInputTracingEvent', { ... });
    

    See more about the @contrast/reporter service here.

  • Other stuff

    There are some utility-type functions that rely on configuration state.

    // This uses core.config.stack_trace_filters (new to v5)
    core.isAgentPath('/foo'); 
    
  • @contrast/agentify: Integrate core services and instrumentation into an application. See more here.



FAQs

Last updated on 16 Apr 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc