@contrast/core
TypeScript icon, indicating that this package has built-in type declarations

1.43.0 • Public • Published

@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'); 

Related

  • @contrast/agentify: Integrate core services and instrumentation into an application. See more here.



Readme

Keywords

none

Package Sidebar

Install

npm i @contrast/core

Weekly Downloads

17,318

Version

1.43.0

License

SEE LICENSE IN LICENSE

Unpacked Size

79.7 kB

Total Files

24

Last publish

Collaborators

  • tough-griff
  • michaelwitz
  • chrisdunne
  • contrast_admin
  • jcolekaplan
  • bmacnaughton
  • contrastsec
  • planetlevel