
Security News
OWASP 2025 Top 10 Adds Software Supply Chain Failures, Ranked Top Community Concern
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.
@ambers/domite
Advanced tools
Lite mite wrapping basic DOM for Amber Smalltalk.
It uses a selection of raw DOM API to perform tasks;
it does not use any cross-browser library.
To work on IE8 (or other non-compliant browser),
include amber-compat-es5 and also shim event API
(https://github.com/jonathantneal/EventListener looks good).
amber initnpm install @ambers/domite --savegrunt develamber serve and go to http://localhost:4000/This makes modules from domite namespace loadable.
To do so in the Helios IDE change the imports: section of your packages which use Domite to
imports: {'domite/DOMite'}.
Or you may add it to the testing.js / devel.js files.
The former is preferred because of an easier deployment process.
I am (hopefully thin) wrapper around the notion of "cursor in a page". I represent a DOM node and a point where to insert new content into it.
So I play both the role of a container that inserts as well as the role of an element being inserted.
I inherit from ProtoStream.
Creation API:
Domite new creates an insertion point at the bottom of <body>.Domite newStream is unique way to create pieces of content. It creates an instance "floating in thin air" (wrapper around DOM DocumentFragment) that can be filled with any contents and then inserted in a page.Domite fromElement: aDomElement wraps an element and set the cursor to its end.Domite newElement: 'div' creates new <div /> element (and returns it wrapped as a Domite).CSS selector API:
Domite at: aSelector wraps an element found by document.querySelector(aSelector).aDomite at: aSelector wraps an element found by element.querySelector(aSelector).Domite allAt: aSelector return collection of wrapped results of document.querySelectorAll(aSelector).aDomite allAt: aSelector return collection of wrapped results of element.querySelectorAll(aSelector).Manipulation API:
aDomite << obj inserts obj at the insertion point.
aDomite resetContents deletes contents of the wrapped element.
aDomite cutUpTo: anotherDomite removes contents between the two cursors (or up to the end of the receiver) and returns it collected in a wrapped DocumentFragment (IOW, you can anotherPlace << theResult to move the contents in the specified range).
aDomite attrAt: aString returns attribute of the wrapped element or nil.
aDomite attrAt: aString put: anotherString sets an attribute of the wrapped element.
aDomite propAt: aString returns JS property of the wrapped element or nil.
aDomite propAt: aString put: anObject sets JS property of the wrapped element.
Cursor moving API:
Take this sample HTML, where [n] are just markers, not real content:
<body>
<h1>header</h1>
[4]<p>[2]Hello[1]world[3]</p>[5]
<small>footer</small>
</body>
If d is a Domite representing [1], then:
d setToStart would move d to be at [2],d setToEnd would move d to be at [3],d setToBefore would move d to be at [4], andd setToAfter would move d to be at [5].It is not presumed one would use setToXxx
to actually move around in a single instance.
It is envisioned this API will be used mostly
in combination with copy, like
afterMe := self copy setToAfter.
Event API:
aDomite on: aString bind: [ :ev | ... ] binds a block to process an event.aDomite off: aString unbind: aBlock unbinds the block from processing an event.aDomite fire: aString [detail: anObject] triggers a CustomEvent with specified type and, optionally, a detail object.aDomite fireEvent: anEvent triggers existing DOM Event object!To bring project alive (for example after git clone):
npm run init
Developing the project (after brought alive):
Start server with amber serve and go to http://localhost:4000/ in your browser and follow the instructions
FAQs
Lite mite wrapping basic DOM for Amber Smalltalk
We found that @ambers/domite demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
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.

Security News
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.