You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

posthog-node

Package Overview
Dependencies
Maintainers
16
Versions
192
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

posthog-node - npm Package Compare versions

Comparing version
5.27.0
to
5.27.1
+12
-1
dist/extensions/feature-flags/feature-flags.d.ts

@@ -142,4 +142,15 @@ import { FeatureFlagCondition, PostHogFeatureFlag, PropertyGroup } from '../../types';

declare function matchProperty(property: FeatureFlagCondition['properties'][number], propertyValues: Record<string, any>, warnFunction?: (msg: string) => void): boolean;
type SemverTuple = [number, number, number];
/**
* Parse a version string into a [major, minor, patch] tuple.
* - Strips leading/trailing whitespace
* - Strips 'v' or 'V' prefix
* - Strips pre-release and build metadata (-alpha, +build)
* - Defaults missing components to 0
* - Ignores extra components beyond the third
* - Throws InconclusiveMatchError for invalid input
*/
declare function parseSemver(value: string): SemverTuple;
declare function relativeDateParseForFeatureFlagMatching(value: string): Date | null;
export { FeatureFlagsPoller, matchProperty, relativeDateParseForFeatureFlagMatching, InconclusiveMatchError, RequiresServerEvaluation, ClientError, };
export { FeatureFlagsPoller, matchProperty, relativeDateParseForFeatureFlagMatching, parseSemver, InconclusiveMatchError, RequiresServerEvaluation, ClientError, };
//# sourceMappingURL=feature-flags.d.ts.map
+1
-1

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

{"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../../src/extensions/feature-flags/feature-flags.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../../src/extensions/feature-flags/feature-flags.ts"],"names":[],"mappings":"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"}

@@ -28,2 +28,3 @@ "use strict";

matchProperty: ()=>matchProperty,
parseSemver: ()=>parseSemver,
ClientError: ()=>ClientError,

@@ -551,2 +552,50 @@ relativeDateParseForFeatureFlagMatching: ()=>relativeDateParseForFeatureFlagMatching,

}
case 'semver_eq':
{
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)));
return 0 === cmp;
}
case 'semver_neq':
{
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)));
return 0 !== cmp;
}
case 'semver_gt':
{
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)));
return cmp > 0;
}
case 'semver_gte':
{
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)));
return cmp >= 0;
}
case 'semver_lt':
{
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)));
return cmp < 0;
}
case 'semver_lte':
{
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)));
return cmp <= 0;
}
case 'semver_tilde':
{
const overrideParsed = parseSemver(String(overrideValue));
const { lower, upper } = computeTildeBounds(String(value));
return compareSemverTuples(overrideParsed, lower) >= 0 && compareSemverTuples(overrideParsed, upper) < 0;
}
case 'semver_caret':
{
const overrideParsed = parseSemver(String(overrideValue));
const { lower, upper } = computeCaretBounds(String(value));
return compareSemverTuples(overrideParsed, lower) >= 0 && compareSemverTuples(overrideParsed, upper) < 0;
}
case 'semver_wildcard':
{
const overrideParsed = parseSemver(String(overrideValue));
const { lower, upper } = computeWildcardBounds(String(value));
return compareSemverTuples(overrideParsed, lower) >= 0 && compareSemverTuples(overrideParsed, upper) < 0;
}
default:

@@ -620,2 +669,111 @@ throw new InconclusiveMatchError(`Unknown operator: ${operator}`);

}
function parseSemver(value) {
const text = String(value).trim().replace(/^[vV]/, '');
const baseVersion = text.split('-')[0].split('+')[0];
if (!baseVersion || baseVersion.startsWith('.')) throw new InconclusiveMatchError(`Invalid semver: ${value}`);
const parts = baseVersion.split('.');
const parsePart = (part)=>{
if (void 0 === part || '' === part) return 0;
if (!/^\d+$/.test(part)) throw new InconclusiveMatchError(`Invalid semver: ${value}`);
return parseInt(part, 10);
};
const major = parsePart(parts[0]);
const minor = parsePart(parts[1]);
const patch = parsePart(parts[2]);
return [
major,
minor,
patch
];
}
function compareSemverTuples(a, b) {
for(let i = 0; i < 3; i++){
if (a[i] < b[i]) return -1;
if (a[i] > b[i]) return 1;
}
return 0;
}
function computeTildeBounds(value) {
const parsed = parseSemver(value);
const lower = [
parsed[0],
parsed[1],
parsed[2]
];
const upper = [
parsed[0],
parsed[1] + 1,
0
];
return {
lower,
upper
};
}
function computeCaretBounds(value) {
const parsed = parseSemver(value);
const [major, minor, patch] = parsed;
const lower = [
major,
minor,
patch
];
let upper;
upper = major > 0 ? [
major + 1,
0,
0
] : minor > 0 ? [
0,
minor + 1,
0
] : [
0,
0,
patch + 1
];
return {
lower,
upper
};
}
function computeWildcardBounds(value) {
const text = String(value).trim().replace(/^[vV]/, '');
const cleanedText = text.replace(/\.\*$/, '').replace(/\*$/, '');
if (!cleanedText) throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`);
const parts = cleanedText.split('.');
const major = parseInt(parts[0], 10);
if (isNaN(major)) throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`);
let lower;
let upper;
if (1 === parts.length) {
lower = [
major,
0,
0
];
upper = [
major + 1,
0,
0
];
} else {
const minor = parseInt(parts[1], 10);
if (isNaN(minor)) throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`);
lower = [
major,
minor,
0
];
upper = [
major,
minor + 1,
0
];
}
return {
lower,
upper
};
}
function convertToDateTime(value) {

@@ -656,2 +814,3 @@ if (value instanceof Date) return value;

exports.matchProperty = __webpack_exports__.matchProperty;
exports.parseSemver = __webpack_exports__.parseSemver;
exports.relativeDateParseForFeatureFlagMatching = __webpack_exports__.relativeDateParseForFeatureFlagMatching;

@@ -664,2 +823,3 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [

"matchProperty",
"parseSemver",
"relativeDateParseForFeatureFlagMatching"

@@ -666,0 +826,0 @@ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];

@@ -517,2 +517,50 @@ import { safeSetTimeout } from "@posthog/core";

}
case 'semver_eq':
{
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)));
return 0 === cmp;
}
case 'semver_neq':
{
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)));
return 0 !== cmp;
}
case 'semver_gt':
{
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)));
return cmp > 0;
}
case 'semver_gte':
{
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)));
return cmp >= 0;
}
case 'semver_lt':
{
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)));
return cmp < 0;
}
case 'semver_lte':
{
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)));
return cmp <= 0;
}
case 'semver_tilde':
{
const overrideParsed = parseSemver(String(overrideValue));
const { lower, upper } = computeTildeBounds(String(value));
return compareSemverTuples(overrideParsed, lower) >= 0 && compareSemverTuples(overrideParsed, upper) < 0;
}
case 'semver_caret':
{
const overrideParsed = parseSemver(String(overrideValue));
const { lower, upper } = computeCaretBounds(String(value));
return compareSemverTuples(overrideParsed, lower) >= 0 && compareSemverTuples(overrideParsed, upper) < 0;
}
case 'semver_wildcard':
{
const overrideParsed = parseSemver(String(overrideValue));
const { lower, upper } = computeWildcardBounds(String(value));
return compareSemverTuples(overrideParsed, lower) >= 0 && compareSemverTuples(overrideParsed, upper) < 0;
}
default:

@@ -586,2 +634,111 @@ throw new InconclusiveMatchError(`Unknown operator: ${operator}`);

}
function parseSemver(value) {
const text = String(value).trim().replace(/^[vV]/, '');
const baseVersion = text.split('-')[0].split('+')[0];
if (!baseVersion || baseVersion.startsWith('.')) throw new InconclusiveMatchError(`Invalid semver: ${value}`);
const parts = baseVersion.split('.');
const parsePart = (part)=>{
if (void 0 === part || '' === part) return 0;
if (!/^\d+$/.test(part)) throw new InconclusiveMatchError(`Invalid semver: ${value}`);
return parseInt(part, 10);
};
const major = parsePart(parts[0]);
const minor = parsePart(parts[1]);
const patch = parsePart(parts[2]);
return [
major,
minor,
patch
];
}
function compareSemverTuples(a, b) {
for(let i = 0; i < 3; i++){
if (a[i] < b[i]) return -1;
if (a[i] > b[i]) return 1;
}
return 0;
}
function computeTildeBounds(value) {
const parsed = parseSemver(value);
const lower = [
parsed[0],
parsed[1],
parsed[2]
];
const upper = [
parsed[0],
parsed[1] + 1,
0
];
return {
lower,
upper
};
}
function computeCaretBounds(value) {
const parsed = parseSemver(value);
const [major, minor, patch] = parsed;
const lower = [
major,
minor,
patch
];
let upper;
upper = major > 0 ? [
major + 1,
0,
0
] : minor > 0 ? [
0,
minor + 1,
0
] : [
0,
0,
patch + 1
];
return {
lower,
upper
};
}
function computeWildcardBounds(value) {
const text = String(value).trim().replace(/^[vV]/, '');
const cleanedText = text.replace(/\.\*$/, '').replace(/\*$/, '');
if (!cleanedText) throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`);
const parts = cleanedText.split('.');
const major = parseInt(parts[0], 10);
if (isNaN(major)) throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`);
let lower;
let upper;
if (1 === parts.length) {
lower = [
major,
0,
0
];
upper = [
major + 1,
0,
0
];
} else {
const minor = parseInt(parts[1], 10);
if (isNaN(minor)) throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`);
lower = [
major,
minor,
0
];
upper = [
major,
minor + 1,
0
];
}
return {
lower,
upper
};
}
function convertToDateTime(value) {

@@ -617,2 +774,2 @@ if (value instanceof Date) return value;

}
export { ClientError, FeatureFlagsPoller, InconclusiveMatchError, RequiresServerEvaluation, matchProperty, relativeDateParseForFeatureFlagMatching };
export { ClientError, FeatureFlagsPoller, InconclusiveMatchError, RequiresServerEvaluation, matchProperty, parseSemver, relativeDateParseForFeatureFlagMatching };

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

export declare const version = "5.27.0";
export declare const version = "5.27.1";
//# sourceMappingURL=version.d.ts.map

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

});
const version = '5.27.0';
const version = '5.27.1';
exports.version = __webpack_exports__.version;

@@ -32,0 +32,0 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [

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

const version = '5.27.0';
const version = '5.27.1';
export { version };
{
"name": "posthog-node",
"version": "5.27.0",
"version": "5.27.1",
"description": "PostHog Node.js integration",

@@ -5,0 +5,0 @@ "repository": {

@@ -1085,2 +1085,41 @@ import { FeatureFlagCondition, FlagProperty, FlagPropertyValue, PostHogFeatureFlag, PropertyGroup } from '../../types'

}
case 'semver_eq': {
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)))
return cmp === 0
}
case 'semver_neq': {
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)))
return cmp !== 0
}
case 'semver_gt': {
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)))
return cmp > 0
}
case 'semver_gte': {
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)))
return cmp >= 0
}
case 'semver_lt': {
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)))
return cmp < 0
}
case 'semver_lte': {
const cmp = compareSemverTuples(parseSemver(String(overrideValue)), parseSemver(String(value)))
return cmp <= 0
}
case 'semver_tilde': {
const overrideParsed = parseSemver(String(overrideValue))
const { lower, upper } = computeTildeBounds(String(value))
return compareSemverTuples(overrideParsed, lower) >= 0 && compareSemverTuples(overrideParsed, upper) < 0
}
case 'semver_caret': {
const overrideParsed = parseSemver(String(overrideValue))
const { lower, upper } = computeCaretBounds(String(value))
return compareSemverTuples(overrideParsed, lower) >= 0 && compareSemverTuples(overrideParsed, upper) < 0
}
case 'semver_wildcard': {
const overrideParsed = parseSemver(String(overrideValue))
const { lower, upper } = computeWildcardBounds(String(value))
return compareSemverTuples(overrideParsed, lower) >= 0 && compareSemverTuples(overrideParsed, upper) < 0
}
default:

@@ -1237,2 +1276,128 @@ throw new InconclusiveMatchError(`Unknown operator: ${operator}`)

type SemverTuple = [number, number, number]
/**
* Parse a version string into a [major, minor, patch] tuple.
* - Strips leading/trailing whitespace
* - Strips 'v' or 'V' prefix
* - Strips pre-release and build metadata (-alpha, +build)
* - Defaults missing components to 0
* - Ignores extra components beyond the third
* - Throws InconclusiveMatchError for invalid input
*/
function parseSemver(value: string): SemverTuple {
const text = String(value).trim().replace(/^[vV]/, '')
// Strip pre-release and build metadata
const baseVersion = text.split('-')[0].split('+')[0]
if (!baseVersion || baseVersion.startsWith('.')) {
throw new InconclusiveMatchError(`Invalid semver: ${value}`)
}
const parts = baseVersion.split('.')
const parsePart = (part: string | undefined): number => {
if (part === undefined || part === '') {
return 0
}
if (!/^\d+$/.test(part)) {
throw new InconclusiveMatchError(`Invalid semver: ${value}`)
}
return parseInt(part, 10)
}
const major = parsePart(parts[0])
const minor = parsePart(parts[1])
const patch = parsePart(parts[2])
return [major, minor, patch]
}
/**
* Compare two semver tuples.
* Returns -1 if a < b, 0 if a == b, 1 if a > b
*/
function compareSemverTuples(a: SemverTuple, b: SemverTuple): number {
for (let i = 0; i < 3; i++) {
if (a[i] < b[i]) return -1
if (a[i] > b[i]) return 1
}
return 0
}
/**
* Compute bounds for tilde operator: ~X.Y.Z means >=X.Y.Z and <X.(Y+1).0
*/
function computeTildeBounds(value: string): { lower: SemverTuple; upper: SemverTuple } {
const parsed = parseSemver(value)
const lower: SemverTuple = [parsed[0], parsed[1], parsed[2]]
const upper: SemverTuple = [parsed[0], parsed[1] + 1, 0]
return { lower, upper }
}
/**
* Compute bounds for caret operator:
* - ^X.Y.Z where X > 0: >=X.Y.Z <(X+1).0.0
* - ^0.Y.Z where Y > 0: >=0.Y.Z <0.(Y+1).0
* - ^0.0.Z: >=0.0.Z <0.0.(Z+1)
*/
function computeCaretBounds(value: string): { lower: SemverTuple; upper: SemverTuple } {
const parsed = parseSemver(value)
const [major, minor, patch] = parsed
const lower: SemverTuple = [major, minor, patch]
let upper: SemverTuple
if (major > 0) {
upper = [major + 1, 0, 0]
} else if (minor > 0) {
upper = [0, minor + 1, 0]
} else {
upper = [0, 0, patch + 1]
}
return { lower, upper }
}
/**
* Compute bounds for wildcard operator:
* - "X.*" or "X" with wildcard: >=X.0.0 <(X+1).0.0
* - "X.Y.*": >=X.Y.0 <X.(Y+1).0
*/
function computeWildcardBounds(value: string): { lower: SemverTuple; upper: SemverTuple } {
const text = String(value).trim().replace(/^[vV]/, '')
// Remove trailing .* or *
const cleanedText = text.replace(/\.\*$/, '').replace(/\*$/, '')
if (!cleanedText) {
throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`)
}
const parts = cleanedText.split('.')
const major = parseInt(parts[0], 10)
if (isNaN(major)) {
throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`)
}
let lower: SemverTuple
let upper: SemverTuple
if (parts.length === 1) {
// X.* pattern
lower = [major, 0, 0]
upper = [major + 1, 0, 0]
} else {
// X.Y.* pattern
const minor = parseInt(parts[1], 10)
if (isNaN(minor)) {
throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`)
}
lower = [major, minor, 0]
upper = [major, minor + 1, 0]
}
return { lower, upper }
}
function convertToDateTime(value: FlagPropertyValue | Date): Date {

@@ -1293,2 +1458,3 @@ if (value instanceof Date) {

relativeDateParseForFeatureFlagMatching,
parseSemver,
InconclusiveMatchError,

@@ -1295,0 +1461,0 @@ RequiresServerEvaluation,

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

export const version = '5.27.0'
export const version = '5.27.1'