Alexandro.Net

Version 1.0.0

@stackline/is-plain-obj

Check if a value is a plain object

Independent maintenance of is-plain-obj 4.1.0. Original authors and licenses are retained.

Installation

# Preserve existing imports with an npm alias
npm install is-plain-obj@npm:@stackline/is-plain-obj@1.0.0
# Or use the scoped package name in your imports
npm install @stackline/is-plain-obj@1.0.0

Node.js: >=12. Read the compatibility and maintenance notes before migrating.

Usage and API

The reference below may retain upstream package names. Use the alias installation above to run those imports with this Stackline release.

@stackline/is-plain-obj

Independent maintenance fork of is-plain-obj@4.1.0. Original API, module format, runtime dependency ranges, and supported Node.js engines are preserved.

npm install @stackline/is-plain-obj
# Preserve existing imports with an npm alias:
npm install is-plain-obj@npm:@stackline/is-plain-obj@1.0.0

See UPSTREAM.md for the exact source and issue review, and CHANGELOG.md for focused maintenance changes. Development and release tooling runs on Node.js 24; that does not change the library runtime requirement.

Maintained by Stackline. Issues · npm.

Upstream documentation

is-plain-obj

Check if a value is a plain object

An object is plain if it's created by either {}, new Object(), or Object.create(null).

Install

$ npm install is-plain-obj

Usage

import isPlainObject from 'is-plain-obj';
import {runInNewContext} from 'node:vm';

isPlainObject({foo: 'bar'});
//=> true

isPlainObject(new Object());
//=> true

isPlainObject(Object.create(null));
//=> true

// This works across realms
isPlainObject(runInNewContext('({})'));
//=> true

isPlainObject([1, 2, 3]);
//=> false

class Unicorn {}
isPlainObject(new Unicorn());
//=> false

isPlainObject(Math);
//=> false

Related


Get professional support for this package with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.

Upstream issues and maintenance review

Upstream and issue review

Base: sindresorhus/is-plain-obj, npm is-plain-obj@4.1.0, commit 68e8cc77bb1bbd0bf7d629d3574b6ca70289b2cc. Full Git history and upstream attribution are retained. Last npm publication: 2022-06-15T15:47:13.746Z. Release inactivity does not by itself prove abandonment.

Review: 2026-09-29T00:22:09.703001+00:00. Source coverage: Most recently updated 100 open and 30 closed issue/PR entries; PRs removed. This is triage evidence, not a claim of exhaustive review.

No open issues were present in the collection. Closed #11 (cross-realm objects), #9 (TypeScript narrowing), #12 (performance implementation), #2/#3 (prototype definition) are already reflected in 4.1.0 and covered by original/current tests. Closed #6/#7 concern obsolete engine/browser expectations; this ESM fork preserves Node >=12 without converting its module format. Runtime source is unchanged.

Reviewed issue entries

Release changes

Stackline changes

1.0.0 — 2026-09-28

Independent maintenance fork of is-plain-obj 4.1.0. Preserve published API, module exports and runtime engine compatibility. No open issues were present in the collection. Closed #11 (cross-realm objects), #9 (TypeScript narrowing), #12 (performance implementation), #2/#3 (prototype definition) are already reflected in 4.1.0 and covered by original/current tests. Closed #6/#7 concern obsolete engine/browser expectations; this ESM fork preserves Node >=12 without converting its module format. Runtime source is unchanged.

Pinned development tools, real API and packed-consumer checks, GitHub CI/CodeQL gates, exact-artifact npm provenance and immutable release evidence are added. See UPSTREAM.md for limits of issue triage.

Release files and references

Package bytes, npm provenance and the immutable GitHub release were verified for this version. Security checks describe the reviewed release; documented compatibility risks and upstream reports are not blanket claims of resolution.