Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
enonic-wizardry
Advanced tools
Functional utility library for Enonic XP. This library is intended to house reusable and tested code blocks based on enonic-fp that can be used in every project.
Enonic-wizardry is intended to supplement enonic-fp with common patterns.
We recommend using this library together with the
xp-codegen-plugin Gradle plugin. xp-codegen-plugin will create TypeScript
interfaces
for your content-types. Those interfaces will be very useful together with this library.
npm run build
In this example we have a service that returns an article by the key
as json. Or if something goes wrong, we return
an Internal Server Error instead.
import {fold} from "fp-ts/lib/IOEither";
import {pipe} from "fp-ts/lib/pipeable";
import {Request, Response} from "enonic-types/controller";
import {errorResponse, ok} from "enonic-fp/controller";
import {Article} from "../../site/content-types/article/article"; // 1
import {getContentByIds} from "enonic-wizardry/content";
import {forceArray} from "enonic-fp/array";
export function get(req: Request): Response { // 2
const keys: Array<string> = forceArray(req.params.key); // ["key1", "key2", "key3"]
const program = pipe( // 3
getContentByIds<Article>(keys), // 4
fold( // 5
errorResponse(req), // 7
ok // 8
)
);
return program(); // 9
}
interface Article { ... }
generated by
xp-codegen-plugin.Request
and Response
to control the shape of our controller.pipe
function from fp-ts to pipe the result of one function into the next one.getContentByIds
function from content
that query for the Content<Article>
where the id is one
of the strings in the keys
-Array. The return type here is IOEither<EnonicError, ReadonlyArray<Content<Article>>>
pipe
is to unpack the IOEither
. This is done with
fold(handleError, handleSuccess)
.errorResponse(req: Request)
function returns a new function that can be used as a callback by fold
.
This "new function", takes the EnonicError
object as a parameter, and creates a Json Response
with the correct
status number, based on the errorKey
of the EnonicError
.ok
function to fold
as the second parameter. The ok
creates a Response
where the status
is
200
, and the parameter is the body
. In this case the ReadonlyArray<Content<Article>>
is assigned to thebody
.program
of type IO<Response>
, but we have not yet performed a single
side effect. It's time to perform those side effects, so we run the IO
by calling it, and a Response
is returned
which out controller function can return.getContentByIds
createAll
createAndPublish
deleteAndPublish
modifyAndPublish
applyChangesToData
createMediaFromAttachment
runAsSuperUser
runInDraftContext
getSubMenuByKey
validate
FAQs
Functional utility library for Enonic XP
The npm package enonic-wizardry receives a total of 5 weekly downloads. As such, enonic-wizardry popularity was classified as not popular.
We found that enonic-wizardry demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.