Socket
Socket
Sign inDemoInstall

@segment/analytics-node

Package Overview
Dependencies
Maintainers
250
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@segment/analytics-node - npm Package Compare versions

Comparing version 1.0.0-beta.19 to 1.0.0-beta.20

2

dist/cjs/generated/version.js

@@ -5,3 +5,3 @@ "use strict";

// This file is generated.
exports.version = '1.0.0-beta.19';
exports.version = '1.0.0-beta.20';
//# sourceMappingURL=version.js.map

@@ -1,11 +0,14 @@

import { bindAll, pTimeout } from '@segment/analytics-core';
import { validateSettings } from './settings';
import { version } from '../generated/version';
import { createConfiguredNodePlugin } from '../plugins/segmentio';
import { NodeEventFactory } from './event-factory';
import { dispatchAndEmit } from './dispatch-emit';
import { NodeEmitter } from './emitter';
import { Context } from './context';
import { NodeEventQueue } from './event-queue';
export class Analytics extends NodeEmitter {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Analytics = void 0;
const analytics_core_1 = require("@segment/analytics-core");
const settings_1 = require("./settings");
const version_1 = require("../generated/version");
const segmentio_1 = require("../plugins/segmentio");
const event_factory_1 = require("./event-factory");
const dispatch_emit_1 = require("./dispatch-emit");
const emitter_1 = require("./emitter");
const context_1 = require("./context");
const event_queue_1 = require("./event-queue");
class Analytics extends emitter_1.NodeEmitter {
constructor(settings) {

@@ -15,8 +18,8 @@ super();

this._pendingEvents = 0;
validateSettings(settings);
this._eventFactory = new NodeEventFactory();
this._queue = new NodeEventQueue();
(0, settings_1.validateSettings)(settings);
this._eventFactory = new event_factory_1.NodeEventFactory();
this._queue = new event_queue_1.NodeEventQueue();
const flushInterval = settings.flushInterval ?? 10000;
this._closeAndFlushDefaultTimeout = flushInterval * 1.25; // add arbitrary multiplier in case an event is in a plugin.
const { plugin, publisher } = createConfiguredNodePlugin({
const { plugin, publisher } = (0, segmentio_1.createConfiguredNodePlugin)({
writeKey: settings.writeKey,

@@ -33,6 +36,6 @@ host: settings.host,

this.emit('initialize', settings);
bindAll(this);
(0, analytics_core_1.bindAll)(this);
}
get VERSION() {
return version;
return version_1.version;
}

@@ -55,3 +58,3 @@ /**

});
return timeout ? pTimeout(promise, timeout).catch(() => undefined) : promise;
return timeout ? (0, analytics_core_1.pTimeout)(promise, timeout).catch(() => undefined) : promise;
}

@@ -64,3 +67,3 @@ _dispatch(segmentEvent, callback) {

this._pendingEvents++;
dispatchAndEmit(segmentEvent, this._queue, this, callback)
(0, dispatch_emit_1.dispatchAndEmit)(segmentEvent, this._queue, this, callback)
.catch((ctx) => ctx)

@@ -152,3 +155,3 @@ .finally(() => {

return this._queue.criticalTasks.run(async () => {
const ctx = Context.system();
const ctx = context_1.Context.system();
const registrations = plugins.map((xt) => this._queue.register(ctx, xt, this));

@@ -164,3 +167,3 @@ await Promise.all(registrations);

async deregister(...pluginNames) {
const ctx = Context.system();
const ctx = context_1.Context.system();
const deregistrations = pluginNames.map((pl) => {

@@ -179,2 +182,3 @@ const plugin = this._queue.plugins.find((p) => p.name === pl);

}
exports.Analytics = Analytics;
//# sourceMappingURL=analytics-node.js.map

@@ -0,5 +1,8 @@

"use strict";
// create a derived class since we may want to add node specific things to Context later
import { CoreContext } from '@segment/analytics-core';
Object.defineProperty(exports, "__esModule", { value: true });
exports.Context = void 0;
const analytics_core_1 = require("@segment/analytics-core");
// While this is not a type, it is a definition
export class Context extends CoreContext {
class Context extends analytics_core_1.CoreContext {
static system() {

@@ -9,2 +12,3 @@ return new this({ type: 'track', event: 'system' });

}
exports.Context = Context;
//# sourceMappingURL=context.js.map

@@ -1,3 +0,6 @@

import { dispatch } from '@segment/analytics-core';
import { Context } from './context';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.dispatchAndEmit = void 0;
const analytics_core_1 = require("@segment/analytics-core");
const context_1 = require("./context");
const normalizeDispatchCb = (cb) => (ctx) => {

@@ -8,6 +11,6 @@ const failedDelivery = ctx.failedDelivery();

/* Dispatch function, but swallow promise rejections and use event emitter instead */
export const dispatchAndEmit = async (event, queue, emitter, callback) => {
const dispatchAndEmit = async (event, queue, emitter, callback) => {
try {
const context = new Context(event);
const ctx = await dispatch(context, queue, emitter, {
const context = new context_1.Context(event);
const ctx = await (0, analytics_core_1.dispatch)(context, queue, emitter, {
...(callback ? { callback: normalizeDispatchCb(callback) } : {}),

@@ -34,2 +37,3 @@ });

};
exports.dispatchAndEmit = dispatchAndEmit;
//# sourceMappingURL=dispatch-emit.js.map

@@ -1,4 +0,8 @@

import { Emitter } from '@segment/analytics-core';
export class NodeEmitter extends Emitter {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.NodeEmitter = void 0;
const analytics_core_1 = require("@segment/analytics-core");
class NodeEmitter extends analytics_core_1.Emitter {
}
exports.NodeEmitter = NodeEmitter;
//# sourceMappingURL=emitter.js.map

@@ -1,8 +0,12 @@

import { EventFactory } from '@segment/analytics-core';
import { createMessageId } from '../lib/get-message-id';
export class NodeEventFactory extends EventFactory {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.NodeEventFactory = void 0;
const analytics_core_1 = require("@segment/analytics-core");
const get_message_id_1 = require("../lib/get-message-id");
class NodeEventFactory extends analytics_core_1.EventFactory {
constructor() {
super({ createMessageId });
super({ createMessageId: get_message_id_1.createMessageId });
}
}
exports.NodeEventFactory = NodeEventFactory;
//# sourceMappingURL=event-factory.js.map

@@ -1,3 +0,6 @@

import { CoreEventQueue, PriorityQueue } from '@segment/analytics-core';
class NodePriorityQueue extends PriorityQueue {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.NodeEventQueue = void 0;
const analytics_core_1 = require("@segment/analytics-core");
class NodePriorityQueue extends analytics_core_1.PriorityQueue {
constructor() {

@@ -15,3 +18,3 @@ super(1, []);

}
export class NodeEventQueue extends CoreEventQueue {
class NodeEventQueue extends analytics_core_1.CoreEventQueue {
constructor() {

@@ -21,2 +24,3 @@ super(new NodePriorityQueue());

}
exports.NodeEventQueue = NodeEventQueue;
//# sourceMappingURL=event-queue.js.map

@@ -1,7 +0,11 @@

import { ValidationError } from '@segment/analytics-core';
export const validateSettings = (settings) => {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateSettings = void 0;
const analytics_core_1 = require("@segment/analytics-core");
const validateSettings = (settings) => {
if (!settings.writeKey) {
throw new ValidationError('writeKey', 'writeKey is missing.');
throw new analytics_core_1.ValidationError('writeKey', 'writeKey is missing.');
}
};
exports.validateSettings = validateSettings;
//# sourceMappingURL=settings.js.map

@@ -1,4 +0,20 @@

export * from './params';
export * from './segment-event';
export * from './plugin';
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./params"), exports);
__exportStar(require("./segment-event"), exports);
__exportStar(require("./plugin"), exports);
//# sourceMappingURL=index.js.map

@@ -1,2 +0,3 @@

export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=params.js.map

@@ -1,2 +0,3 @@

export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=plugin.js.map

@@ -1,2 +0,3 @@

export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=segment-event.js.map

@@ -0,3 +1,6 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = void 0;
// This file is generated.
export const version = '1.0.0-beta.19';
exports.version = '1.0.0-beta.20';
//# sourceMappingURL=version.js.map

@@ -1,6 +0,11 @@

export { Analytics } from './app/analytics-node';
export { Context } from './app/context';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Context = exports.Analytics = void 0;
var analytics_node_1 = require("./app/analytics-node");
Object.defineProperty(exports, "Analytics", { enumerable: true, get: function () { return analytics_node_1.Analytics; } });
var context_1 = require("./app/context");
Object.defineProperty(exports, "Context", { enumerable: true, get: function () { return context_1.Context; } });
// export Analytics as both a named export and a default export (for backwards-compat. reasons)
import { Analytics } from './app/analytics-node';
export default Analytics;
const analytics_node_2 = require("./app/analytics-node");
exports.default = analytics_node_2.Analytics;
//# sourceMappingURL=index.js.map

@@ -0,6 +1,9 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.abortSignalAfterTimeout = void 0;
/**
* use non-native event emitter for the benefit of non-node runtimes like CF workers.
*/
import { Emitter } from '@segment/analytics-core';
import { detectRuntime } from './env';
const analytics_core_1 = require("@segment/analytics-core");
const env_1 = require("./env");
/**

@@ -13,3 +16,3 @@ * adapted from: https://www.npmjs.com/package/node-abort-controller

this.aborted = false;
this.eventEmitter = new Emitter();
this.eventEmitter = new analytics_core_1.Emitter();
}

@@ -62,4 +65,4 @@ toString() {

*/
export const abortSignalAfterTimeout = (timeoutMs) => {
if (detectRuntime() === 'cloudflare-worker') {
const abortSignalAfterTimeout = (timeoutMs) => {
if ((0, env_1.detectRuntime)() === 'cloudflare-worker') {
return []; // TODO: this is broken in cloudflare workers, otherwise results in "A hanging Promise was canceled..." error.

@@ -75,2 +78,3 @@ }

};
exports.abortSignalAfterTimeout = abortSignalAfterTimeout;
//# sourceMappingURL=abort.js.map

@@ -0,5 +1,8 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.b64encode = void 0;
/**
* Base64 encoder that works in browser, worker, node runtimes.
*/
export const b64encode = (str) => {
const b64encode = (str) => {
if (

@@ -15,2 +18,3 @@ // in node env

};
exports.b64encode = b64encode;
//# sourceMappingURL=base-64-encode.js.map

@@ -0,1 +1,4 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.tryCreateFormattedUrl = void 0;
const stripTrailingSlash = (str) => str.replace(/\/$/, '');

@@ -8,5 +11,6 @@ /**

*/
export const tryCreateFormattedUrl = (host, path) => {
const tryCreateFormattedUrl = (host, path) => {
return stripTrailingSlash(new URL(path || '', host).href);
};
exports.tryCreateFormattedUrl = tryCreateFormattedUrl;
//# sourceMappingURL=create-url.js.map

@@ -1,2 +0,5 @@

export const detectRuntime = () => {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.detectRuntime = void 0;
const detectRuntime = () => {
if (typeof process === 'object' && process && process.env) {

@@ -21,2 +24,3 @@ return 'node';

};
exports.detectRuntime = detectRuntime;
//# sourceMappingURL=env.js.map

@@ -0,5 +1,8 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractPromiseParts = void 0;
/**
* Returns a promise and its associated `resolve` and `reject` methods.
*/
export function extractPromiseParts() {
function extractPromiseParts() {
let resolver;

@@ -17,2 +20,3 @@ let rejecter;

}
exports.extractPromiseParts = extractPromiseParts;
//# sourceMappingURL=extract-promise-parts.js.map

@@ -1,3 +0,9 @@

import { default as _fetch } from 'node-fetch';
export const fetch = globalThis.fetch || _fetch;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.fetch = void 0;
const node_fetch_1 = __importDefault(require("node-fetch"));
exports.fetch = globalThis.fetch || node_fetch_1.default;
//# sourceMappingURL=fetch.js.map

@@ -1,2 +0,5 @@

import { v4 } from '@lukeed/uuid/secure';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createMessageId = void 0;
const secure_1 = require("@lukeed/uuid/secure");
/**

@@ -7,5 +10,6 @@ * get a unique messageId with a very low chance of collisions

*/
export const createMessageId = () => {
return `node-next-${Date.now()}-${v4()}`;
const createMessageId = () => {
return `node-next-${Date.now()}-${(0, secure_1.v4)()}`;
};
exports.createMessageId = createMessageId;
//# sourceMappingURL=get-message-id.js.map

@@ -1,7 +0,10 @@

import { v4 as uuid } from '@lukeed/uuid';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ContextBatch = void 0;
const uuid_1 = require("@lukeed/uuid");
const MAX_EVENT_SIZE_IN_KB = 32;
const MAX_BATCH_SIZE_IN_KB = 480; // (500 KB is the limit, leaving some padding)
export class ContextBatch {
class ContextBatch {
constructor(maxEventCount) {
this.id = uuid();
this.id = (0, uuid_1.v4)();
this.items = [];

@@ -51,2 +54,3 @@ this.sizeInBytes = 0;

}
exports.ContextBatch = ContextBatch;
//# sourceMappingURL=context-batch.js.map

@@ -1,8 +0,11 @@

import { Publisher } from './publisher';
import { version } from '../../generated/version';
import { detectRuntime } from '../../lib/env';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createConfiguredNodePlugin = exports.createNodePlugin = void 0;
const publisher_1 = require("./publisher");
const version_1 = require("../../generated/version");
const env_1 = require("../../lib/env");
function normalizeEvent(ctx) {
ctx.updateEvent('context.library.name', '@segment/analytics-node');
ctx.updateEvent('context.library.version', version);
const runtime = detectRuntime();
ctx.updateEvent('context.library.version', version_1.version);
const runtime = (0, env_1.detectRuntime)();
if (runtime === 'node') {

@@ -13,3 +16,3 @@ ctx.updateEvent('_metadata.nodeVersion', process.versions.node);

}
export function createNodePlugin(publisher) {
function createNodePlugin(publisher) {
function action(ctx) {

@@ -33,4 +36,5 @@ normalizeEvent(ctx);

}
export const createConfiguredNodePlugin = (props, emitter) => {
const publisher = new Publisher(props, emitter);
exports.createNodePlugin = createNodePlugin;
const createConfiguredNodePlugin = (props, emitter) => {
const publisher = new publisher_1.Publisher(props, emitter);
return {

@@ -41,2 +45,3 @@ publisher: publisher,

};
exports.createConfiguredNodePlugin = createConfiguredNodePlugin;
//# sourceMappingURL=index.js.map

@@ -1,8 +0,11 @@

import { backoff } from '@segment/analytics-core';
import { abortSignalAfterTimeout } from '../../lib/abort';
import { tryCreateFormattedUrl } from '../../lib/create-url';
import { extractPromiseParts } from '../../lib/extract-promise-parts';
import { fetch } from '../../lib/fetch';
import { ContextBatch } from './context-batch';
import { b64encode } from '../../lib/base-64-encode';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Publisher = void 0;
const analytics_core_1 = require("@segment/analytics-core");
const abort_1 = require("../../lib/abort");
const create_url_1 = require("../../lib/create-url");
const extract_promise_parts_1 = require("../../lib/extract-promise-parts");
const fetch_1 = require("../../lib/fetch");
const context_batch_1 = require("./context-batch");
const base_64_encode_1 = require("../../lib/base-64-encode");
function sleep(timeoutInMs) {

@@ -15,3 +18,3 @@ return new Promise((resolve) => setTimeout(resolve, timeoutInMs));

*/
export class Publisher {
class Publisher {
constructor({ host, path, maxRetries, maxEventsInBatch, flushInterval, writeKey, httpRequestTimeout, }, emitter) {

@@ -22,4 +25,4 @@ this._emitter = emitter;

this._flushInterval = flushInterval;
this._auth = b64encode(`${writeKey}:`);
this._url = tryCreateFormattedUrl(host ?? 'https://api.segment.io', path ?? '/v1/batch');
this._auth = (0, base_64_encode_1.b64encode)(`${writeKey}:`);
this._url = (0, create_url_1.tryCreateFormattedUrl)(host ?? 'https://api.segment.io', path ?? '/v1/batch');
this._httpRequestTimeout = httpRequestTimeout ?? 10000;

@@ -29,3 +32,3 @@ }

this.pendingFlushTimeout && clearTimeout(this.pendingFlushTimeout);
const batch = new ContextBatch(this._maxEventsInBatch);
const batch = new context_batch_1.ContextBatch(this._maxEventsInBatch);
this._batch = batch;

@@ -71,3 +74,3 @@ this.pendingFlushTimeout = setTimeout(() => {

const batch = this._batch ?? this.createBatch();
const { promise: ctxPromise, resolve } = extractPromiseParts();
const { promise: ctxPromise, resolve } = (0, extract_promise_parts_1.extractPromiseParts)();
const pendingItem = {

@@ -132,3 +135,3 @@ context: ctx,

let failureReason;
const [signal, timeoutId] = abortSignalAfterTimeout(this._httpRequestTimeout);
const [signal, timeoutId] = (0, abort_1.abortSignalAfterTimeout)(this._httpRequestTimeout);
try {

@@ -151,3 +154,3 @@ const requestInit = {

});
const response = await fetch(this._url, requestInit);
const response = await (0, fetch_1.fetch)(this._url, requestInit);
clearTimeout(timeoutId);

@@ -180,3 +183,3 @@ if (response.ok) {

// Retry after attempt-based backoff.
await sleep(backoff({
await sleep((0, analytics_core_1.backoff)({
attempt: currentAttempt,

@@ -189,2 +192,3 @@ minTimeout: 25,

}
exports.Publisher = Publisher;
function resolveFailedBatch(batch, reason) {

@@ -191,0 +195,0 @@ batch.getContexts().forEach((ctx) => ctx.setFailedDelivery({ reason }));

@@ -5,4 +5,4 @@ import type { NodeEmitter } from './emitter';

import { SegmentEvent } from './types';
export declare type Callback = (err?: unknown, ctx?: Context) => void;
export declare const dispatchAndEmit: (event: SegmentEvent, queue: NodeEventQueue, emitter: NodeEmitter, callback?: Callback | undefined) => Promise<void>;
export type Callback = (err?: unknown, ctx?: Context) => void;
export declare const dispatchAndEmit: (event: SegmentEvent, queue: NodeEventQueue, emitter: NodeEmitter, callback?: Callback) => Promise<void>;
//# sourceMappingURL=dispatch-emit.d.ts.map

@@ -8,3 +8,3 @@ import { CoreEmitterContract, Emitter } from '@segment/analytics-core';

*/
export declare type NodeEmitterEvents = CoreEmitterContract<Context> & {
export type NodeEmitterEvents = CoreEmitterContract<Context> & {
initialize: [AnalyticsSettings];

@@ -11,0 +11,0 @@ call_after_close: [SegmentEvent];

@@ -12,3 +12,3 @@ import type { GroupTraits, UserTraits, CoreExtraContext, EventProperties, Integrations, Timestamp } from '@segment/analytics-core';

**/
declare type IdentityOptions = {
type IdentityOptions = {
userId: string;

@@ -20,3 +20,3 @@ anonymousId?: string;

};
export declare type AliasParams = {
export type AliasParams = {
userId: string;

@@ -28,3 +28,3 @@ previousId: string;

};
export declare type GroupParams = {
export type GroupParams = {
groupId: string;

@@ -41,3 +41,3 @@ /**

} & IdentityOptions;
export declare type IdentifyParams = {
export type IdentifyParams = {
/**

@@ -53,3 +53,3 @@ * Traits are pieces of information you know about a group.

} & IdentityOptions;
export declare type PageParams = {
export type PageParams = {
category?: string;

@@ -62,3 +62,3 @@ name?: string;

} & IdentityOptions;
export declare type TrackParams = {
export type TrackParams = {
event: string;

@@ -65,0 +65,0 @@ properties?: EventProperties;

import type { CoreSegmentEvent } from '@segment/analytics-core';
declare type SegmentEventType = 'track' | 'page' | 'identify' | 'alias' | 'screen';
type SegmentEventType = 'track' | 'page' | 'identify' | 'alias' | 'screen';
export interface SegmentEvent extends CoreSegmentEvent {

@@ -4,0 +4,0 @@ type: SegmentEventType;

@@ -1,2 +0,2 @@

export declare const version = "1.0.0-beta.19";
export declare const version = "1.0.0-beta.20";
//# sourceMappingURL=version.d.ts.map

@@ -7,3 +7,3 @@ /**

*/
export declare const tryCreateFormattedUrl: (host: string, path?: string | undefined) => string;
export declare const tryCreateFormattedUrl: (host: string, path?: string) => string;
//# sourceMappingURL=create-url.d.ts.map

@@ -1,3 +0,3 @@

export declare type RuntimeEnv = 'node' | 'browser' | 'web-worker' | 'cloudflare-worker' | 'unknown';
export type RuntimeEnv = 'node' | 'browser' | 'web-worker' | 'cloudflare-worker' | 'unknown';
export declare const detectRuntime: () => RuntimeEnv;
//# sourceMappingURL=env.d.ts.map
import { Publisher, PublisherProps } from './publisher';
import { Plugin } from '../../app/types';
import { NodeEmitter } from '../../app/emitter';
declare type DefinedPluginFields = 'name' | 'type' | 'version' | 'isLoaded' | 'load' | 'alias' | 'group' | 'identify' | 'page' | 'screen' | 'track';
declare type SegmentNodePlugin = Plugin & Required<Pick<Plugin, DefinedPluginFields>>;
export declare type ConfigureNodePluginProps = PublisherProps;
type DefinedPluginFields = 'name' | 'type' | 'version' | 'isLoaded' | 'load' | 'alias' | 'group' | 'identify' | 'page' | 'screen' | 'track';
type SegmentNodePlugin = Plugin & Required<Pick<Plugin, DefinedPluginFields>>;
export type ConfigureNodePluginProps = PublisherProps;
export declare function createNodePlugin(publisher: Publisher): SegmentNodePlugin;

@@ -8,0 +8,0 @@ export declare const createConfiguredNodePlugin: (props: ConfigureNodePluginProps, emitter: NodeEmitter) => {

{
"name": "@segment/analytics-node",
"version": "1.0.0-beta.19",
"version": "1.0.0-beta.20",
"main": "./dist/cjs/index.js",

@@ -5,0 +5,0 @@ "module": "./dist/esm/index.js",

// This file is generated.
export const version = '1.0.0-beta.19'
export const version = '1.0.0-beta.20'

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc