Documentation index
1169 entries across 3 libraries: every namespace, class, function and element, and every guide. Methods are listed on their class's page, and the search box finds them.
Namespaces53
MMO\core\arrays 21 functions.
MMO\core\attributes 8 classes.
MMO\core\classes 13 abstract classes, 1 classes, 13 traits.
MMO\client 8 classes, 3 functions.
MMO\core\code 8 functions.
MMO\core\colors 5 functions.
MMO.configjs This class is a mockup of the php entity
MMO\client\entities\JSConfigit should be replaced by the server configMMO\client\controllers 5 classes.
MMO\core\controllers 6 classes.
MMO\doc\controllers 4 classes.
MMO\core 9 classes.
MMO.customElementsjs MMO\core\dates 19 functions.
MMO.schemas.DATE_FORMATjs MMO\core\debug 16 functions.
MMO\doc 16 functions, 9 classes.
MMO\core\documents 6 classes.
MMO\client\entities 7 classes.
MMO\core\entities 2 enums, 9 classes.
MMO\client\events 1 classes.
MMO\core\events 12 classes.
MMO\client\exceptions 2 exceptions.
MMO\core\exceptions 14 exceptions.
MMO\core\files 33 functions.
MMO.inputs.GESTURESjs MMO\core\helpers 2 abstract classes, 27 classes, 4 enums.
MMO\doc\helpers 2 classes.
MMO.core.HTMLColorsjs MMO.core.htmlentitiesReplacementsjs MMO.schemas.IDSjs List of all external schemas
MMO\client\interfaces 2 interfaces.
MMO\core\interfaces 33 interfaces.
MMO\doc\js 3 classes.
MMO.schemas.MESSAGESjs Annotation error messages
MMO\doc\models 6 classes.
MMO.core.dom.NAMESPACE_URISjs MMO\client\scs\nodes 32 classes, 1 abstract classes.
MMO\core\objects 18 functions.
MMO\core\packages 3 functions.
MMO\core\paths 24 functions.
MMO\doc\php 1 classes.
MMO\core\printers 8 classes.
MMO.core.transitions.profilesjs MMO\core\schemas 1 abstract classes, 7 functions, 13 classes.
MMO\client\scs 19 classes, 1 enums.
MMO\core\server 31 functions, 1 enums, 21 classes.
MMO\core\shell 64 functions.
MMO.core.stringsjs MMO\core\strings 50 functions.
MMO\core\uris 16 functions.
MMO.schemas.VALIDATORSjs Schema vocabulary validators
MMO\core\versions 15 functions.
MMO\client\demo\www 4 classes, 2 enums.
Classes263
MMO.core.history.Actionjs MMO\core\classes\aDataController A controller specialized for JSON data APIs backed by one or more iRepository instances.
MMO\core\controllers\AdminController CLI admin commands (status, phpinfo, package listing/building, cron management), run via the shell request dispatcher (aShellController) -- each
route_*method backs one#[Command]/`#[Inte…MMO.schemas.Annotationjs The result of validating one value against a schema: whether it passed, and why not.
MMO.core.APIRequesterjs Wrapper to query any API implementing JSON API
MMO\core\attributes\APIRoute Class to use to match a route in the router.
MMO\core\Application This is the main module of the framework: - listen on the php signals : shutdown, error, exception, autoload - route request and send response to the server - log everything - plan jobs (CRON like)
MMO.schemas.ArrayAnnotationjs The annotation of an array: one child annotation per item.
MMO\core\attributes\ArrayProperty Declares a single named property of a \MMO\core\classes\tArrayProperties-using class: how to read it (getter), write it (setter), persist it (store), and its JSON-Schema.
MMO\core\schemas\ArrayValidator Validator for a PHP array value -- which, per JSON Schema, can be EITHER the 'array' type (a list) or the 'object' type (a map): $testArray/$testObject decide which, from the value's own …
MMO.schemas.aSchemajs Base class for all schemas
MMO\client\scs\nodes\AtRuleNode A css at-rule the language does not interpret (
@media,@supports,@keyframes,@font-face, ...).MMO\core\events\Autoload Dispatched when an unknown class is referenced, giving listeners a chance to load/register it (a PSR-4-autoloader-style hook built on the event system instead of
spl_autoload_register).MMO\client\scs\nodes\BinaryNode A binary operation:
$base * 3,$a == $b,$a and $b.MMO\core\schemas\BooleanValidator Validator for a bool value -- adds no keywords of its own beyond Validator::KEYS.
MMO\core\helpers\BQuoteDomain Backticks
MMO\core\helpers\BracketsDomain Square brackets []
MMO\client\scs\Builtins The standard library of Simple CSS (the spec, 41).
MMO\client\demo\www\CalendarEvent MMO\client\entities\CalendarEvent MMO\doc\CallGraphAnalyzer Best-effort static call-graph scanner.
MMO\client\scs\nodes\CallNode A function call.
MMO\client\demo\www\Client MMO\core\schemas\Coercer Converter from one type to another.
MMO\core\entities\Collection Entity container.
MMO.core.Colorjs MMO\core\attributes\Command An APIRoute specialized for CLI subcommands (method 'SHELL', matching any path via '**') -- see
MMO\core\events\Commit Dispatched (via
\MMO\commit()) to persist a batch of entity changes -- each listening iRepository (\MMO\core\classes\aRepository::onCommit) picks out and stores the entities that belong…MMO\client\scs\CompilationContext The values a php application injects into a compilation, read from scs as
context::name.MMO\client\scs\Compiler The Simple CSS compiler: one instance compiles one stylesheet.
MMO\client\scs\nodes\ComponentNode `@component button { ...
MMO\client\scs\nodes\ConfigNode @config @screen.tablet = 768px-- sets a compiler option from the source.MMO\core\Configuration The framework's central configuration/DI container: a nested array of settings and lazily-instantiated objects (\MMO\core\objects\unserialize's
'$' => ClassNameconvention), addressable by p…MMO\core\helpers\Container Implementation of PSR ContainerInterface: a nested, json-path-addressable data container (backed by
MMO\client\entities\Content Content to be shown by the page controller.
MMO\client\entities\ContentEditable MMO\client\entities\ContentEditableBlock MMO\client\scs\nodes\ContextNode context::density,context::design.spacing.md-- a value injected by the php application.MMO\core\server\Cookie An HTTP cookie, with import/export helpers for the common cookie-jar text formats (Netscape/cURL's classic tab-separated format -- NetscapeLine/toNetscapeLine/Netscape/ExportNet…
MMO\core\events\Create Dispatched to build an instance of $class, letting a listener answer with
$event->setReturn($instance)instead of a plainnew $class(...)-- e.g.MMO\core\Cron Manage the current user's real system crontab (via the
crontabcommand).MMO\core\helpers\CronExp A parsed 5-field cron expression (
minute hour dayOfMonth month dayOfWeek), used by \MMO\core\Cron to schedule jobs.MMO\client\scs\CssRule One generated css rule, before emission.
MMO\core\printers\CsvPrinter A XlsxPrinter that renders to CSV text instead of xlsx cell values: same row/column flattening, but plain-text/RFC-4180-style quoting (exportString) instead of Excel formulas for repeated…
MMO\core\server\Curl A
curlextension wrapper: builds up request options fluently (setHeaders/setCookies/...), thenMMO\core\helpers\CurlyBracketsDomain Curly brackets {}
MMO\client\DartSass MMO.core.Datejs MMO\client\scs\nodes\DeclarationNode property: value-- a css declaration.MMO.core.history.DeleteActionjs MMO\doc\helpers\DocComment MMO\doc\controllers\DocController The generator's control panel: pick libraries, pick languages, (re)generate.
MMO\client\DocGenerator Generates the complete HTML documentation from a JSON file
MMO\doc\DocIndex Everything the documentation can point a reader at, in one list: what the index page lists and what the search box searches (\MMO\doc\controllers\DocPageController::routeIndex, \MMO\doc\c…
MMO\doc\models\DocMember One member of a symbol: a constant, a property, a method, a plain function, a custom element's attribute, a css hook or a slot.
MMO\doc\models\DocNode Base of every node of the documentation model (DocPage, DocSymbol, DocMember, DocParam).
MMO\doc\models\DocPage One generated documentation page: the unit both renderers work on.
MMO\doc\controllers\DocPageController Renders a generated documentation page as real html, instead of dropping its markdown into an
<mmo-markdown>.MMO\doc\models\DocParam One parameter of a function/method, or one attribute of a custom element -- whatever the language, a name, a type, an optional default and a description.
MMO\doc\models\DocSymbol One top-level documented thing: a php class/interface/trait/enum/function, a javascript class/function/ namespace, or a
.jhscustom element/view.MMO\doc\helpers\DocTag MMO\doc\models\DocType One rendered type expression, already resolved: the display text plus, for every atom of it, where that atom is documented.
MMO\core\documents\Document A renderable container for a controller/response's output data (its "body"), plus metadata: HTTP-style
Links (LinkProviderInterface), request/responselogs(\MMO\core\events\Log), fre…MMO\core\events\DocumentInit Dispatched whenever a document's body is (re)set (from
Document::__constructorDocument::setBody), letting listeners inspect or react to the new body (e.g.MMO\core\documents\DocumentOptions A document's options as named arguments, for its constructor:
new HtmlDocument(null, new DocumentOptions(...))stands fornew HtmlDocument(null, ['raw' => true, ...]), and a misspelled option i…MMO\doc\Documentor MMO\core\events\DocumentRender Dispatched by
Document::render(), letting a listener supply the rendered output itself (via setReturn) instead of the document's default printer -- e.g.MMO.math.Domainjs A set of numbers, held as a sorted list of disjoint MMO.math.Interval
MMO\core\helpers\DQuoteDomain Double quotes
MMO.inputs.Dragjs Drag gesture Options: - button: the button type to use when starting to drag (MMO.inputs.BUT_LEFT| MMO.inputs.BUT_WHEEL| MMO.inputs.BUT_RIGHT) - ghost: a selector or an HTMLElement that is used to …
MMO\client\controllers\EditorController MMO\core\entities\EmbeddedEntity An entity that lives embedded inside another entity's property ($parent/$key) instead of its own collection -- has no collection/repository of its own (getCollection/getReposito…
MMO\client\scs\Emitter Collects the generated CssRule and turns them into css: resolves
@order, groups the rules of a same at-rule (@media,@supports,@keyframes) together and formats the output.MMO.elements.Entityjs MMO\core\entities\Entity The framework's standard, storable entity: an id, a label/title, and creation/modification timestamps on top of \MMO\core\classes\aEntity's schema/property/change-tracking machinery, plus the …
MMO\client\scs\EvaluationContext Everything an authorized php function may need to know about where it is being called from: the injected compilation context, the css selector currently being emitted, the compile-time scope and th…
MMO\client\scs\Evaluator Evaluates expressions and renders css values.
MMO\client\demo\www\Event MMO\core\events\Event Base class for every event/signal in the framework: just an $origin (whoever dispatched it) plus the
MMO.core.EventBindingjs MMO.core.EventEmitterjs MMO\doc\controllers\ExampleController Runs an
@examplesnippet from a symbol's own doc comment, in a sandbox (ExampleRunner), and returns its output as JSON.MMO\doc\ExampleRunner Runs an
@examplePHP snippet in an isolated, sandboxed subprocess.MMO.schemas.FalseSchemajs False schema (always invalidate the value)
MMO\core\schemas\FalseSchema The
falseJSON Schema: no value is valid, and coercion always fails.MMO\core\events\Fetch Dispatched to resolve a URL into a value: any registered listener that can answer it calls
$event->setReturn($value)(Signal), and the caller reads it back via Signal::getReturn.MMO.core.Filejs MMO\client\entities\File MMO\core\helpers\Filter A single filter: a set of path => condition pairs, ALL of which must match (an implicit AND) for test to pass.
MMO\core\helpers\FilterGroup A group of filters (or nested groups) combined with GroupOperator (AND/OR/NOR).
MMO\core\helpers\FilterPath A reference to another path in the SAME data being tested, e.g.
MMO\core\helpers\FilterValue A single
operator + valuecondition, e.g.MMO\client\scs\nodes\ForNode `@for $i in 1..6 { ...
MMO\client\scs\Frame The css generation state at one point of the compilation: which selectors are being emitted, inside which at-rules, and at which
@orderpriority.MMO\client\scs\nodes\FunctionNode `@fn name($param) { return ...
MMO.inputs.Gesturejs Gesture Options: - allow_move: {Boolean} true to capture mouse move - allow_out: {Boolean} true to allow mouse to go out of the element Events : - fail - done - start - stop - update
MMO\doc\Graphviz MMO\core\helpers\GroupDomain A generic group domain delimited by two ALREADY-REGISTERED tokens (referenced by their id, e.g.
MMO.core.dom.Htmljs Markup to parse rather than text to show.
MMO\core\documents\HtmlDocument An HTML XmlDocument (rendered via HtmlPrinter), with a ready-made
<html><head>...</head><body>...</body></html>skeleton (createBody): a charset/viewport meta, an<base href>set…MMO\core\printers\HtmlPrinter A TextPrinter for HTML output: the same templates as HTML markup instead of plain text -- used both for a document's inline "server console" log block (\MMO\core\documents\HtmlDocument) a…
MMO\doc\HtmlPrinter Renders a documentation page (\MMO\doc\models\DocPage) as html, for \MMO\doc\controllers\DocPageController.
MMO.core.HTMLSearchjs MMO\core\I18n Internationalization module.
MMO\client\scs\nodes\IfNode `@if cond { ... } @else { ...
MMO\core\entities\Importer Class used to import a list of raw data (organized in a map) into a list of entities.
MMO\client\scs\nodes\ImportNode @import "file.scs"-- resolved at compile time.MMO\core\ImportSocket Import data using a socket.
MMO\core\events\Inc Dispatched when a package's manifest configuration is being included (see PackageManifest's own hooks).
MMO\client\scs\nodes\IndexNode An index access:
$sizes[0],$map["md"].MMO.inputs.Inputjs Input
MMO.core.history.InsertActionjs MMO\core\schemas\InstanceValidator Validator for a PHP object value: 'instanceOf' (this framework's own extension keyword, not part of the JSON Schema spec).
MMO\core\schemas\IntegerValidator Same keywords as NumberValidator, but requires the JSON Schema 'integer' type instead of 'number'.
MMO\core\attributes\InteractiveCommand A Command exposed in \MMO\core\classes\aShellController's built-in interactive REPL: $cmd is what the user types to select it (matched as a required, constant first "argument" of the unde…
MMO\client\scs\nodes\InterpolationNode ${...}/#{...}-- an expression evaluated inside a css value or a selector.MMO.math.Intervaljs A one dimensional interval
[start,end], each bound open or closed, infinities allowed.MMO\client\JHSCompiler Specific attribute - jhs-compile: (html): will render the node without using open().
MMO\doc\js\JHSParser Extracts documentation from a
.jhsfile -- mmo.client's one-file format holding an element's markup, its javascript class and its styles together (\MMO\client\JHSCompiler).MMO\client\JSCompiler Bundle the package's javascript into a single file.
MMO\client\entities\JSConfig JS Configuration for the mmo-app
MMO\doc\JSDocumentor Generates the javascript documentation of a package, exactly the way Documentor generates its php one.
MMO\core\documents\JsonDocument A JSON Document.
MMO\core\JsonParser A hand-written, tolerant JSON parser (Decode/DecodeFile): accepts standard JSON, plus a few lenient extensions with a warning logged (not thrown) -- single-quoted strings, and unquoted ba…
MMO\core\printers\JsonPrinter Converts any value into a plain,
json_encode()-ready structure (see Encode/EncodeFile).MMO\core\entities\JsonRepository Collections container.
MMO\core\helpers\JSVariable Represents a
name = <json>;JavaScript variable assignment, to embed server-side data into an HTML document's inline<script>(used by \MMO\core\documents\HtmlDocument).MMO\client\scs\Lexer Turns a .scs source into a flat list of Token.
MMO\doc\js\Lexer A small, tolerant javascript lexer -- just enough to let Parser walk a source file without ever mistaking a brace, a quote or a slash inside a string/comment/regular expression for real code.
MMO\core\server\Link A PSR-7 web link (RFC 5988/8288's
Link:header entries, e.g.MMO\core\attributes\Listen This attribute is used to auto connect a class to events.
MMO\client\scs\nodes\ListNode An array literal:
[4, 8, 16].MMO\client\scs\nodes\LiteralNode A literal value: a number, a string, an identifier, a color, a boolean...
MMO\core\events\Log A single log entry -- carries a level (one of the iLogLevel flags), a printf-style message + context, where it originated (file/line, and an optional call stack), and renders itself either as …
MMO\core\entities\LogQuery A repository operation, recorded (and dispatchable as an event, so a listener can inspect/veto it via
MMO\core\server\Mail Build and send a MIME email via PHP's
mail()(which shells out tosendmail), with support for HTML/plain alternative bodies, attachments, inline (data-URI) images, and DKIM signing.MMO\core\controllers\MailController Send templated HTML emails (mail/Send), rendering a template file (via \MMO\core\documents\Document::import) into an HtmlDocument and passing its output as the body of a Mail.
MMO.core.history.Managerjs MMO.core.Mapjs Extension of a javascript Map with events.
MMO\client\scs\nodes\MapNode A map literal:
(sm: 8px, md: 16px).MMO\doc\MarkdownParser MMO\doc\MarkdownPrinter Renders a documentation page (\MMO\doc\models\DocPage) as markdown.
MMO\core\controllers\MCPController MCPController — a Model Context Protocol (https://modelcontextprotocol.io) server that exposes the MMOFramework itself to any MCP-compatible AI agent (Claude, or any other client speaking the proto…
MMO\client\scs\Minifier The optional optimization step of the pipeline (the spec, 49 -- step 12): duplicate selector merging and duplicate declaration removal.
MMO.inputs.Mousejs Mouse
MMO\client\scs\nodes\NamespaceNode @namespace ui-- the name the definitions of this file answer to.MMO\core\attributes\NoDump Marker attribute: excludes a property from what \MMO\core\printers\TextPrinter (HtmlPrinter...) prints of an object, dumped (
\MMO\dump()/\MMO\idump()) or not (`HtmlPrinter::Print($object…MMO\core\schemas\NullValidator Validator for a null value -- adds no keywords of its own beyond Validator::KEYS.
MMO\core\schemas\NumberValidator Validator for a numeric value: 'multipleOf'/'maximum'/'minimum'/'exclusiveMaximum'/'exclusiveMinimum'.
MMO.schemas.ObjectAnnotationjs The annotation of an object: one child annotation per property.
MMO\client\scs\nodes\OrderNode @order -1 { ... }-- sets the emission priority of everything inside.MMO\core\helpers\OutputCapture Capture everything echoed/printed (via PHP's own output buffering,
ob_start()) so it can be inspected, filtered, or discarded instead of being sent to the real output.MMO\core\PackageManager ## Structure of the manifest: mmo.json the packages manager will try to find a mmo.json in the current folder or one of its parent in auto mode.
MMO\core\helpers\PackageManifest Store mmoframework package informations
MMO\client\events\PageContents Event to request content for a page
MMO\client\controllers\PageController MMO\core\helpers\ParenthesisDomain Parenthesis ()
MMO\client\scs\Parser Turns the tokens of a .scs source into an ast (nodes\StylesheetNode).
MMO\doc\js\Parser Extracts documentation from javascript sources, the way reflection extracts it from php.
MMO\core\helpers\Path MMO\core\helpers\PeriodStatistic Accumulates counters (e.g.
MMO\client\demo\www\Personne MMO\client\scs\PhpFunctionRegistry The php callables an scs source is allowed to invoke through
php::name(...).MMO.inputs.Pointerjs Pointer
MMO.inputs.Pressjs Press gesture: a click, a multi-click or a long press, depending on its options.
MMO.core.Printerjs Printer: render any value to text.
MMO\client\scs\Printer Prints an ast (Parser) back as Simple CSS source.
MMO\core\printers\PrintOptions A printer's options as named arguments:
new PrintOptions(escape: true)stands for['escape' => true].MMO\core\server\Process Process is a thin wrapper around proc_* functions to easily start independent PHP processes.
MMO\core\entities\Query Generic way to query a collection of entities.
MMO\client\scs\nodes\RawNode A chunk of css kept verbatim (punctuation, combinators,
!important, ...).MMO\doc\php\Reflector Builds the documentation model (\MMO\doc\models\DocSymbol) for php symbols, out of reflection.
MMO\core\entities\Repository Collections container.
MMO\core\controllers\RepositoryController Controller used to handle entities through the repositories
MMO\core\server\Request PSR-7-style HTTP request.
MMO\core\server\Response Psr Response with a body as an object.
MMO\client\scs\Result The outcome of a compilation: the generated css, plus the compile-time variables it evaluated.
MMO\client\scs\nodes\ReturnNode return expression-- only valid inside a@fnbody.MMO\core\server\Route # API json api
MMO\client\scs\nodes\RuleNode selector { ... }-- a css rule, possibly nested.MMO\client\SassParser Singleton class that parses sass variables
MMO.schemas.Schemajs A JSON-Schema (draft 2020-12) document, loaded and ready to validate values.
MMO\core\schemas\Schema Implementation of JSON Schema
MMO\client\scs\Scope A chain of compile-time variables (
@let).MMO\client\scs\nodes\ScreenNode `@screen tablet { ...
MMO\client\SCSCompiler Compiles Simple CSS (
.scs) into css.MMO\doc\controllers\SearchController Looks up anything documented across every installed package's documentation, reading the
index.jsonsearch index \MMO\doc\Documentor::buildIndex writes alongside each library's markdown (bui…MMO.core.SearchNodejs MMO\core\attributes\SearchProperty Declares a named, user-facing search field on a \MMO\core\classes\tArrayProperties-using class: a title/view for the UI, and a filter-expression template (buildFilters) that turns a user'…
MMO.core.SearchWordjs MMO\core\attributes\Serialize This attribute is used to alter the serialization process.
MMO\core\server\Shell Run local shell commands via Process, exposing just the latest run's output/exit code.
MMO\core\server\ShellArguments Parsed command-line arguments (options/flags), as used by ShellRequest's body.
MMO\core\printers\ShellPrinter A TextPrinter for an ANSI-color-capable terminal: the same templates, restyled with
SHELL_*color/style escape codes (seefunctions.php's SHELL_* constants).MMO\core\server\ShellRequest Command Request used to create a simple request from a string Models a CLI invocation as a PSR-7-style Request: the script's own path becomes the URI, and the rest of
$argvbecomes the body (@see…MMO\core\server\ShellResult The outcome of one command: stdout, stderr and -- crucially -- a real exit code.
MMO\core\server\ShellRunner A uniform command runner on top of any iShell -- the local Shell or a remote SSH -- giving every command the same result object with a real exit code, plus dry-run support and the ha…
MMO\core\events\Shutdown The shutdown event.
MMO\core\events\Signal An Event that a listener can answer with a return value (a request/response style event, as opposed to a plain notification) -- the dispatching code calls Send then reads getReturn.
MMO\core\events\SingleSignal Signal that is sent only one time during the application lifecycle.
MMO\client\scs\SourceLocation Where a token/node/value came from in a .scs source.
MMO\client\scs\SourceMap A source map v3 for the generated css: it tells a browser which
.scsfile, line and column each piece of css came from, so devtools showslib.scs:91instead…MMO\core\helpers\SQuoteDomain Simple quotes
MMO\core\server\SSH A remote shell over SSH (wraps the
ssh2PECL extension).MMO\core\server\SSHJob A command started on a remote host and *detached* from the SSH session that started it (SSH::execBackground): it keeps running after the command returns, after the SSH session is closed, and a…
MMO\core\server\SSHStream A Stream wrapping the stdout of a command started via SSH::openExec, with the matching stderr stream and exit code alongside it.
MMO\core\controllers\StatisticController Compute chart-ready statistics (counts/sums per dataset, optionally as a percentage, over one or more comparison periods) over an entity collection, exposed both as an API (routeCount/rou…
MMO.core.Storagejs Persist entities in
localStorage/sessionStorage, namespaced by their schema id.MMO\core\server\Stream PHP stream implementation.
MMO\core\server\StreamResponse Psr Response that reads a stream Used to retrieve files The application sends it as it reads it, a chunk at a time (render's
outputoption): a download is not limited by php's memory.MMO\client\scs\nodes\StringNode A quoted string containing interpolations:
"btn-${$name}".MMO\core\schemas\StringValidator Validator for a string value: 'maxLength'/'minLength'/'pattern'/'format'.
MMO\client\scs\nodes\StyleNode `@style name($param = default) { ...
MMO\client\scs\nodes\StylesheetNode The root node of a parsed .scs file.
MMO.svg.Svgjs MMO\core\entities\Tag Used by entities to create searchable term or filters for them.
MMO\core\helpers\TagDomain Tag <>. Unlike the other group domains, defaults to NOT recursive (a
<inside a tag is not treated as opening a nested tag).MMO.core.Templatejs Base class for View
MMO\core\controllers\TestController The test runner's page: every installed package that ships a test suite, and a button to run each one.
MMO\core\TestRunner Runs a package's phpunit suite and reports the result as data.
MMO\client\controllers\TestsController The http face of the javascript test suite: lists what can be run, and runs it.
MMO\core\documents\TextDocument A plain-text Document (rendered via TextPrinter by default) that appends any recorded
MMO\core\printers\TextPrinter Converter to string for any value's type, driven by a per-type/per-log-level $templates table (each a
strtr()-style string with{placeholder}tokens -- see renderTemplate/setTemp…MMO\client\Theme MMO\client\ThemeConfigurator Reads the theme's token layer, lets an application change any value in it, and writes the result back as Simple CSS.
MMO\client\controllers\ThemeController The http face of ThemeConfigurator: reads the theme's customizable surface, and writes a new one.
MMO\client\scs\nodes\ThemeNode @theme [scope] { group { key: value } }-- runtime design tokens, emitted as css custom properties.MMO\client\scs\Token A single lexical token.
MMO\core\helpers\Token A single lexed unit: either a "known" token from its domain's token list (id = the key it was registered under), or a run of plain, unrecognized text (id = TEXT_ID, i.e.
MMO\core\helpers\TokenDomain A "grammar": a list of recognized literal tokens (each a plain string, e.g.
MMO\core\helpers\Tokenizer A generic, hand-rollable lexer: split text into a stream of Token instances, driven by a stack of
MMO.inputs.Touchjs Touch
MMO.inputs.TouchMousejs Touch
MMO.schemas.TrueSchemajs True schema (always validate the value)
MMO\core\schemas\TrueSchema The
trueJSON Schema: every value is valid, and coercion is a no-op.MMO.core.history.UIActionjs This action is used to encapsulate Update/Delete/Insert action and do something when the action has been executed or undoed.
MMO\client\scs\nodes\UnaryNode A unary operation:
-$spacing,not $rounded.MMO\core\server\UnixPipes UnixPipes implementation uses unix pipes as handles.
MMO.core.history.UpdateActionjs MMO\core\helpers\Uri A Path extended with scheme/host/user/password/port/query/fragment -- a full PSR-7 UriInterface, plus the same ArrayAccess/basepath machinery as Path (accessed via string keys: 'scheme', 'host…
MMO.core.URLSearchParamsjs Extension of URLSearchParams that can handle arrays of the form
xxx[yyy][zzz]orxxx[]MMO\client\scs\nodes\UseNode @use lib::center/@use size(48px, 48px)-- expands a@stylein place.MMO\core\schemas\Validator Validates one value against one Schema (JSON Schema 2020-12 semantics), keyword by keyword.
MMO\core\schemas\ValidatorError One validation failure: which schema keyword ($keywordLocation) rejected which part of the value (Validator::getPath), and why ($message).
MMO\client\scs\Value A compile-time Simple CSS value.
MMO\client\scs\nodes\ValueListNode A css value, a selector or an at-rule prelude: an ordered list of terms, each one remembering whether it was preceded by whitespace so the emitted css looks like the source that produced it.
MMO\client\scs\nodes\VariableNode @let $name = value-- a compile-time variable declaration.MMO\client\scs\nodes\VariableRefNode $name,$map.key,$colors.primaryor$tokens::palette.n50.MMO\client\scs\nodes\VariantNode `@variant primary { ...
MMO.elements.Viewjs Template synchronized with a Map of data Views content is as follow: - contentRoot: {MMO.core.Map} that contains the root of the data.
MMO\core\server\Websocket A hand-rolled RFC 6455 WebSocket server: a single instance listens for one TCP connection (listen), performs the HTTP-Upgrade handshake, then exchanges framed messages over it (readMessag…
MMO.core.Windowjs window
MMO\core\server\WindowsPipes WindowsPipes implementation uses temporary files as handles.
MMO\client\entities\Workflow MMO\client\controllers\WorkflowController Controller used to dispatch workflow events and get parcours configuration
MMO\core\printers\XlsxPrinter Flattens arbitrary rows of data (arrays, entities, nested structures) into a plain
[row][column] => stringgrid suitable for \MMO\core\documents\xlsx\Sheet cells -- e.g.MMO\core\documents\XmlDocument A Document whose body is an XML tree (XmlNodes/XmlNode) instead of a plain array, rendered via XmlPrinter.
MMO\core\helpers\XMLElement SimpleXMLElement wrapper, adding: namespace-prefixed attribute/child access (
'ns:name'), parent/sibling navigation, a self-contained toXML serializer, and various convenience mutators Simple…MMO\core\helpers\XmlNode An XmlNodes with a tag name and attributes -- an actual XML/HTML element.
MMO\core\helpers\XmlNodes A lightweight, mutable DOM-like tree: a list of "child nodes" that are each either a plain string (text) or another XmlNodes/XmlNode instance.
MMO\core\XmlParser A tolerant HTML/XML parser: unlike JsonParser, it never throws on malformed markup -- an invalid tag or mismatched closing tag just logs a warning (\MMO\core\classes\aParser::addError, no…
MMO\core\printers\XmlPrinter A TextPrinter for XML output: the same templates as XML markup instead of plain text -- used for a document's inline "server console" log block (\MMO\core\documents\XmlDocument, rendered …
MMO\core\helpers\XmlText A text node of an XmlNodes tree.
Abstract classes17
MMO\core\schemas\aBoolSchema Base for the two JSON-Schema boolean schemas (TrueSchema/FalseSchema) -- a JSON Schema document can itself be the literal
true(accept everything) orfalse(reject everything) instead…MMO\core\helpers\aCharDomain A domain delimited by the SAME character on both ends (e.g.
MMO\core\classes\aCoercer An aConverter specialized for coercion: given an ordered list of acceptable $types, try to convert $value into the first one that accepts it (rather than aConverter's single-type aCo…
MMO\core\classes\aController Base class for any controller.
MMO\core\classes\aConverter Class used to convert a value from one type to another.
MMO\core\classes\aEntity Base implementation of iEntity: a tArrayProperties-backed record with a lifecycle status (cStatus), change tracking, links, and repository integration.
MMO\core\classes\aExporter An aConverter specialized for exporting arbitrary PHP values (objects, arrays, enums) into a plain, serializable structure -- recursively, with automatic cycle detection (an object seen more t…
MMO\core\helpers\aGroupDomain A domain delimited by DIFFERENT start/end characters (e.g.
MMO\core\classes\aMessage Base implementation of PSR-7's MessageInterface (\MMO\core\server\Request / \MMO\core\server\Response extend this): immutable-by-convention headers, built on tWithHeaders.
MMO\core\classes\aModule Base class for a configurable singleton module.
MMO\core\classes\aParser Base class for a single-instance, non-reentrant text parser built on \MMO\core\helpers\Tokenizer: a subclass builds its tokenizer once (createTokenizer) and implements process to tur…
MMO\core\classes\aPipes Base class for feeding a subprocess's stdin and reading its stdout/stderr without blocking, used by
MMO\core\classes\aRepository Collections container.
MMO\core\classes\aRequest Base implementation of PSR-7's (Server)RequestInterface (\MMO\core\server\Request /
MMO\core\classes\aResponse Base implementation of PSR-7's ResponseInterface (\MMO\core\server\Response extends this): status code/reason phrase, plus convenience helpers for common response shapes (redirects, HTTP auth …
MMO\core\classes\aShellController Base controller for a CLI shell application: routes matched with method 'SHELL' (declared via #[Command(...)]) become subcommands, e.g.
MMO\client\scs\nodes\Node Base class for every ast node produced by \MMO\client\scs\Parser.
Interfaces35
MMO\core\interfaces\iArray Interface that describes any object that can be used liked an array
MMO\core\interfaces\iArrayProperties Interface that describes any object that defines
\MMO\core\attributes\ArrayPropertyattributesMMO\core\interfaces\iBoolSchema MMO\core\interfaces\iCoercer MMO\core\interfaces\iCollection A set of entities of one class, usually belonging to a repository.
MMO\core\interfaces\iComparable MMO\core\interfaces\iConverter Interface that describes any callback that can coerce a value into another type A converter that transforms a value into a string is called a
printerMMO\core\interfaces\iEntity An entity: one record, its values read and written by property name, its changes tracked until a commit.
MMO\core\interfaces\iEvent Any object being dispatched SHOULD implements at least this interface It is an
Eventregarding PSR14: Event dispatcher It MUST not return a value after being dispatched.MMO\core\interfaces\iException MMO\core\interfaces\iExporter MMO\core\interfaces\iFilter MMO\core\interfaces\iIdentifiable MMO\core\interfaces\iLogEmitter Any object that emits log events
MMO\core\interfaces\iLogLevel MMO\core\interfaces\iMakefile A build step that knows its output file and the files it depends on, and rebuilds the output only when one of them changed (tWithMakefiles).
MMO\core\interfaces\iModule Base interface for modules.
MMO\core\interfaces\iMutationObserver MMO\core\interfaces\iOptions Typed options: an object whose named constructor arguments stand for a string-keyed options array.
MMO\core\interfaces\iRemoteShell MMO\core\interfaces\iRenderable Any object that can render itself to a string
MMO\core\interfaces\iRepository MMO\core\interfaces\iRequest MMO\core\interfaces\iResponse Any object that can log events
MMO\core\interfaces\iRoutable MMO\core\interfaces\iSchema MMO\core\interfaces\iSchemaProvider MMO\core\interfaces\iSerializable Interface that describes an object that wants to alter the serialized data returned by \MMO\core\objects\serialize
MMO\core\interfaces\iShell MMO\core\interfaces\iSignal MMO\core\interfaces\iSingleton A class with one shared instance per request (\MMO\core\classes\tSingleton): never
newit.MMO\core\interfaces\iStoppableEvent Stoppable event
MMO\core\interfaces\iUriProvider Any object that can return a Uri
MMO\client\interfaces\iWorkflowConfiguration MMO\client\interfaces\iWorkflowSignal
Traits13
MMO\core\classes\tArray Trait implementing \MMO\core\interfaces\iArray: gives a class array-like storage (ArrayAccess, Countable, IteratorAggregate, JsonSerializable) backed by a single protected
$contentarray.MMO\core\classes\tArrayProperties Trait implementing \MMO\core\interfaces\iArrayProperties: turns a class's PHP properties (and/or methods) annotated with the #[ArrayProperty] attribute into a declarative, schema-backed "array…
MMO\core\classes\tEvent Trait giving a class (typically an "event" data object) its own static listener list and a way to broadcast an instance of itself to every registered listener, in ascending $order.
MMO\core\classes\tException Trait giving an exception class placeholder-based, i18n-aware messages: the constructor takes a
{xxx}-style $format and a $context array (like the framework's logging functions), renders them int…MMO\core\classes\tLogEmitter Implements
MMO\core\interfaces\iLogEmitter: gives any class a full set of PSR-3 log-level methods (emergency/alert/critical/error/warning/notice/info/debug/log), each gated by a per-instance verb…MMO\core\classes\tPropertyGetter Trait to make protected and private properties readable from outside the class, as
$obj->propertyName, through PHP's__get/__issetmagic methods.MMO\core\classes\tSingleton Trait to implement the singleton pattern: exactly one instance of the class exists per request, lazily created on first access and stored in the application's Configuration container, keyed by…
MMO\core\classes\tStoppableEvent Trait implementing PSR-14's StoppableEventInterface: lets an event listener (in a chain run by tEvent's dispatch()) stop the remaining listeners from being called, by calling stopPropagation()…
MMO\core\classes\tWithEntities Gives a class its own local collection of iEntity instances, indexed by iEntity::getId when available (falling back to a plain numeric index for entities without an id, or when two differ…
MMO\core\classes\tWithHeaders Generic, case-insensitive HTTP-header storage, implementing the read/write parts of PSR-7's MessageInterface (
getHeaders/hasHeader/getHeader/getHeaderLine) plus a handful of convenience get…MMO\core\classes\tWithMakefiles Trait giving a class a named collection of iMakefile builders (e.g.
MMO\core\classes\tWithOptions Gives a class a simple key/value "options" bag (e.g.
MMO\core\classes\tWithRoutes Gives a controller class (any class with methods decorated with
#[APIRoute(...)], e.g.
Enums10
MMO\core\helpers\cCronField CRON Expressions ================
MMO\core\helpers\cDatePeriod A calendar period granularity (day, week, month, ...), with helpers to compute its boundaries around a given date, the difference between two dates in that unit, and to shift a date by N periods.
MMO\core\server\cJobState The state of a detached remote command (SSHJob).
MMO\core\entities\cLogQuery The kind of repository operation a LogQuery records.
MMO\client\demo\www\cSexe MMO\core\entities\cStatus An entity's lifecycle status, roughly ordered from least to most "settled" (see index) -- an application is free to use only a subset of these, and to attach its own meaning to each transition.
MMO\client\demo\www\cTypeEvent MMO\core\helpers\FilterOperator The comparison operators usable in a FilterValue / a
['xxx' => ['$op' => value]]condition -- see this file's own top-of-file docblock for what each one means.MMO\core\helpers\GroupOperator How a FilterGroup's members combine: AND (all must match), OR (any must match), NOR (none may match).
MMO\client\scs\TokenType The kinds of token produced by Lexer.
Exceptions19
MMO.schemas.AnnotationErrorjs Error for annotations
MMO\core\exceptions\e404 "Not found" exception for a route/entity that couldn't be resolved while handling an HTTP request.
MMO\core\exceptions\eDeprecated Thrown when deprecated functionality is used.
MMO\core\exceptions\eInvalid Thrown when a value/argument is invalid.
MMO\core\exceptions\eInvalidCoercion Thrown by \MMO\core\classes\aCoercer when a value cannot be coerced to any of the requested types.
MMO\core\exceptions\eInvalidConfiguration Thrown when a class/module/property is misconfigured -- a bug to fix in code or config, not a bad runtime input.
MMO\core\exceptions\eInvalidVersion Thrown by \MMO\core\PackageManager for a malformed or unsatisfiable package version constraint.
MMO\core\exceptions\eItemNotFound Thrown by \MMO\core\arrays\get / \MMO\core\arrays\set / \MMO\core\arrays\walk when a json-path (e.g.
MMO\core\exceptions\eJson Thrown by \MMO\core\JsonParser when it encounters malformed/unparseable JSON.
MMO\core\exceptions\eLogic Thrown when a call is logically wrong given the code's own state (a programming error detectable only at runtime), as opposed to bad external input -- see eInvalid for that.
MMO\core\exceptions\eNotFound Thrown when a named thing (a property, route, collection, config key, ...) could not be found.
MMO\core\exceptions\eReadonly Thrown when writing to a read-only property.
MMO\core\exceptions\eRuntime Thrown for a failure that can only be detected while running (as opposed to a bad argument caught up front).
MMO\client\exceptions\eSass MMO\client\exceptions\eSCS A Simple CSS (.scs) compilation error.
MMO\core\exceptions\eServer Base exception for a failure that occurred while handling an HTTP request, carrying that request alongside the usual \MMO\core\classes\tException message/context/origin.
MMO\core\exceptions\eTimeout Thrown when an operation (a request, a command, a lock wait, ...) exceeded its allotted time.
MMO.PathErrorjs A json path that could not be walked to the end.
MMO.RequestErrorjs An http request that came back with a non-ok status.
Functions559
MMO.core.dom.$js Call query selector.
MMO.i18n.$js Get translation for a given text
MMO.inputs.$js Create an input of a certain type
MMO.core.dom.$$js Call query selectorAll
MMO.core.path.absolutejs Resolve a path against a root.
MMO\core\paths\absolute Make $path absolute, prefixing it with $root when it's relative (NOTE: the result is NOT simplified -- any
../.end up literally in the merged result; run it through simplify() yourself if…MMO\core\uris\absolute Fill in whatever $uri is missing (scheme, host/user/pass/port, path) from $root.
MMO\core\paths\absoluteFilename Same as absolute(), but drive-aware (via isAbsoluteFilename()/relativeFilename() when $isWindows).
MMO.addCharactersLeftjs Add a live "N characters left" counter under every
[maxlength]input of a subtree.MMO.core.dom.addHTMLjs Parse html and add it to a node.
MMO.core.markdown.addHtmljs MMO.core.dom.addOffsetjs Move the element
MMO\doc\addSearchSource Makes the documentation searchable from
<mmo-app>'s command palette, the one search box of the application: the search endpoint (SearchController::routeSearch) is declared in `MMO.config.sea…MMO\core\paths\adrive Get the "drive" of an already-split path (segments array):
/for a unix path (a leading empty segment), or the drive letter (e.g.MMO\doc\anchor The canonical in-page anchor for a symbol or member name.
MMO.core.strings.anyRegexjs Create a regular expression that matches any of the regex.
MMO\core\uris\apiQuery Build a query string in the {json:api} convention (
filters[...],sort=,fields=,page[limit]/page[offset]).MMO.core.dom.appendChildrenjs Add children to a node.
MMO\core\schemas\arrayKeysType The JSON-Schema type of a phpstan array (
array<K, V>) according to the type of its keys: integers make a list (array), strings a map (object), anything else (array-key,int|string, `mixed…MMO\core\strings\asciiNumber Render a number as large, multi-line ASCII-art digits (ASCII_NUMBERS), for banner-style CLI output (e.g.
MMO\core\shell\ask Ask input from the user
MMO.askBeforeLeavingjs Prevent leaving page without confirming
MMO.core.dom.atjs Get a node from its path
MMO\core\debug\backtrace Call \debug_backtrace
MMO\core\debug\backtraceCaller Get trace of the caller
MMO\core\strings\baseConvert Convert a number from one base/alphabet to another.
MMO\core\paths\basename Extract the filename (last path segment) of a path -- almost the same as PHP's own \basename(), except that in $strict mode it returns false rather than the segment itself when that segment doesn't…
MMO\core\debug\benchmark Benchmark a closure
MMO.core.dom.bodyjs MMO\core\packages\build Build a
.pharpackage from a manifest and a list of source files.MMO\core\uris\buildQuery Same as \http_build_query(), except it can round-trip
true(encoded as a barekey, no=value) andnull(encoded askey=NULL) -- \http_build_query() alone can't distinguish those from `'1'…MMO.core.strings.bytesizejs Format a byte count as a human readable size (binary units, decimal prefixes).
MMO\core\debug\callableName Get the formatted name of a callable
MMO\core\strings\camelCaseIdentifier Convert text to camelCase, treating $separators as word breaks.
MMO\core\shell\characters Split a text into the characters a terminal shows, one column each: a character is one whatever its bytes (UTF-8), and a letter followed by a combining accent is one character too.
MMO\core\server\charset Extract the
charset=...parameter's value from aContent-Typeheader.MMO\core\versions\check Test a version string against a Composer-style constraint string.
MMO\core\code\checkName MMO\core\shell\choose Ask for one of a few choices, listed one per line and numbered, with what each one means.
MMO.schemas.classSchemajs Get a schema for a php class
MMO\core\versions\clean Normalize a version string to its canonical
split()+join()round-tripped form.MMO\core\server\clientIP Get the client's IP address, checking a wider/differently-ordered set of headers than ip() (via \getenv() rather than $_SERVER directly -- functionally equivalent under most SAPIs).
MMO.core.clonejs Deep clone a simple Object
MMO.core.dom.closestParentjs Walk up until a node carries a given tag name.
MMO\core\shell\colorCard Print a table with a preview of every SHELL_* color/style constant.
MMO\core\shell\columns Attempt to get the number of columns of the current terminal
MMO\core\shell\commandExists Tells if a command is available and executable on the current system
MMO\core\schemas\commentInformation Extract schema keywords/metadata from a PHP doc comment (as returned by \ReflectionProperty::getDocComment() and similar), so a class's own docblocks can double as its JSON-Schema definition (…
MMO.core.comparejs Compare the two parameters
MMO\core\objects\compare Type-aware comparison of two arbitrary values, handling cases plain
<=>/==don't get right on their own (iComparable objects, BackedEnum vs its raw backing value, DateTimeInterface by timestamp…MMO\core\versions\compare Compare two versions per Semantic Versioning precedence rules (numeric identifiers compared numerically, alphabetic ones lexically, a shorter prerelease set precedes a longer one that's otherwise i…
MMO.core.compareDescendingjs MMO\core\debug\compareTracesOffset Find where two traces differ, using their file|line|name to find a difference
MMO\doc\compileDocumentationCss Compiles
src/styles/documentation.scsto{bin}/mmo.doc.css, recompiling only when the source is newer (dev mode only -- likeMMO\client\Theme's own asset jobs, a production deploy is expected…MMO\core\shell\confirm Ask the user for a confirmation
MMO\core\objects\connect Auto-wire an object's (or, for a static/string $obj, a class's static) methods to events, by reading their #[MMO\core\attributes\Listen(EventClass::class)] attributes and registering each as a list…
MMO\doc\connectPageRoutes Registers the html documentation renderer, which only makes sense once mmo.client provides the page tree.
MMO\doc\connectRoutes Registers this package's controllers as routes (\MMO\connect).
MMO\doc\connectToClient MMO.core.path.containsjs Test if root is contained in path
MMO\core\server\contentType Extract just the content-type value(s) from a
Content-Typeheader, stripping any;charset=.../other parameters.MMO\core\code\controller The source of a new controller class.
MMO\core\files\copy Copy a file or folder (recursively), returning the number of files actually copied.
MMO\doc\copyPrismAsset Copies mmo.client's vendored
vendor/prism/prism.js(a Prism.js build already bundling the markup/js/scss/ css/markdown/php grammars) out to{bin}/prism.js, so it's actually servable -- \MM…MMO.core.dom.copyStylesjs Copy every COMPUTED style of a node onto another as inline styles, so the copy keeps its look once detached from the stylesheets that produced it.
MMO.copyToClipboardjs Copy text content to clipboard
MMO\core\arrays\count Get the number of elements in any iterable (not just a plain array/\Countable) -- for a plain \Iterator without \Countable, this has to fully traverse it (there's no shortcut).
MMO.schemas.createAnnotationjs Create an annotation from a value
MMO\core\files\createDir Create a folder (recursively) if it does not exist.
MMO.core.dom.createElementjs Create a dom element from a configuration
MMO.core.dom.createElementNSjs MMO.core.server.createFormRequestjs Build a Request out of a <form>, using its own action and method.
MMO.core.server.createLinkjs Serialise a url and its properties as an http Link header value.
MMO.core.server.createRequestjs Create a Request from an url, data and options
MMO.core.dom.createScriptjs Create script
MMO.core.dom.createStylejs Create style
MMO\core\files\csv Read and decode a CSV file (a UTF-8 BOM, if present, is stripped first).
MMO\core\strings\csvColumnIndex Reverse of csvColumnName(): convert a spreadsheet-style column name back to its 0-based index.
MMO\core\strings\csvColumnName Convert a 0-based column index into a spreadsheet-style column name (A, B, ..., Z, AA, AB, ...).
MMO\core\strings\csvDecode Decode CSV text into an array of rows.
MMO\core\strings\csvEncode Encode a list of records as CSV text, guessing the headers automatically from the data by default.
MMO\core\strings\csvRawEncode Encode a list of lines as CSV text, without any header handling: each line is either an array of column values (joined with $sep) or an already-formatted raw string (used as-is).
MMO.i18n.currencyjs Format a number as a currency amount, in the user's locale.
MMO\core\files\dataURI Encode a file as a
data:URI (its content, base64-encoded, with its detected mime type), ready to use directly as e.g.MMO\core\files\dataURIToFile Reverse of dataURI(): decode a
data:URI and write its content to $filename.MMO\core\server\date Format a unix timestamp (or a parseable date string) as an RFC 7231 ("IMF-fixdate") GMT date, suitable for an HTTP header (e.g.
MMO\core\dates\dateTime The framework's all-purpose date parser: turns a timestamp, a DateTimeInterface, or a string into a DateTime/DateTimeImmutable, trying (in order) an explicit $format, an ISO-8601 duration (a string…
MMO\core\dates\dateTimeFromInterval Apply an interval/modifier to a date, always returning a DateTimeImmutable.
MMO.debugjs Log a debug message, tagged but discreet.
MMO\core\server\decodeLink Decode one HTTP
Linkheader value:<{href}>;rel="{rel}";title="{title}" ...MMO\core\server\decodeRecipients Decode a comma-separated recipient list of the form
"Name" <email>, other@example.com, ...(as used in mail headers likeTo/Cc) into[email => name]pairs.MMO.core.dom.decodeUnitjs Convert any css string value into a float
MMO\core\server\defaultCharset Get PHP's configured default charset (the
default_charsetini directive, e.g.MMO\core\server\defaultLanguage Guess a default language from the environment:
$_SERVER['LANG'](its part before any '.', e.g.MMO\core\code\defaultValue The PHP literal a property of $type defaults to.
MMO.definejs Define a Custom Element
MMO\core\arrays\delete Delete the value at the given json-path.
MMO\core\files\delete Recursively delete a file or folder.
MMO\core\strings\describe Describe any value as a compact, technical/debug string representation (unlike render(), which aims for a human-facing display string): an object uses debugName() if available, else a `Class{p…
MMO\core\strings\didYouMean The hint an error message adds after an unknown name: the closest known names, so a typo tells its reader (a developer, or an AI agent) what was meant instead of only what was wrong.
MMO\core\arrays\diff Get the elements of $a whose value is not (strictly) present anywhere in $b -- like \array_diff(), but using strict (
===) comparison instead of string-casting comparison, so it works correctly wi…MMO\core\shell\diff The differences between two texts, line by line, the way
diff -ushows them: a removed line in red after a-, an added one in green after a+, each change among a few unchanged lines around i…MMO\doc\directImplementations Get the direct interfaces implemented by a class
MMO\doc\directUses Get the direct trait implemented by a class
MMO.core.path.dirnamejs Get the parent path of a path.
MMO\core\paths\dirname Extract the directory of a path (same as PHP's \dirname(), but normalizes
\to/first when $isWindows).MMO\core\objects\disconnect Undo a previous connect(): remove an object's (or class's) #[Listen]-declared methods from the events they were registered on.
MMO.core.dom.dispatchEventjs Create a custom event and dispatch it
MMO.core.strings.distanceEqualityjs Compute the strict distance between words.
MMO.core.strings.distanceJaroWinklerjs Compute the the Jaro Distance between two sequences (string or array) s1 and s2, using strict equality operator
===.MMO\core\server\DNSIP Look up a domain's A (IPv4) or AAAA (IPv6) record.
MMO\core\server\documentRoot Get the document root the running script is resolved against: under a web server
$_SERVER['DOCUMENT_ROOT']throughrealpath(), on the CLI as is (normally empty).MMO.domReadyjs Run a function once the dom is ready, immediately if it already is.
MMO\core\strings\dotIdentifier Turn arbitrary text into a lowercase, dot-separated identifier (a common convention for i18n/config keys).
MMO.downloadjs Trigger a download
MMO\core\paths\drive Get the "drive" of a path string:
/for a unix path, or the drive letter (e.g.MMO.core.strings.dumpjs alias to printf with encode = serialize
MMO.core.transitions.elasticInFnjs Build an easing that oscillates before settling, the wobble happening at the START.
MMO.core.transitions.elasticInOutFnjs Build an easing that oscillates at BOTH ends.
MMO.core.transitions.elasticOutFnjs Build an easing that oscillates before settling, the wobble happening at the END.
MMO.core.server.encodejs Encode arguments list
MMO\core\server\encodeLink Reverse of decodeLink(): encode a uri and its attributes into an HTTP
Linkheader value.MMO.core.server.encodeQueryjs Serialise an object as a url query string, nesting with php-style brackets.
MMO.core.dom.encodeUnitjs Make sure a value is a properly formed css value with the correct unit
MMO.core.server.encodeValuejs MMO\core\code\entity The source of a new entity class.
MMO\core\objects\enumFrom Same as tryEnumFrom(), but throws instead of returning null when nothing matches.
MMO.core.path.equaljs Test whether two paths designate the same thing.
MMO.errorjs In order to not mess up the correct line and number of the logs in the console, you need to return a function bound to the console: https://stackoverflow.com/questions/9559725/extending-console-log…
MMO\core\shell\error Print an error message, prefixed with '!!
MMO.core.path.escapejs MMO\core\paths\escape Escape
~and/inside a single path segment, so it can safely be joined with/without being mistaken for a path separator (RFC 6902 JSON Pointer escaping:~->~0,/->~1).MMO\core\shell\escape Escapes a string to be used as an argument and qotes it.
MMO.core.strings.escapeHTMLjs Escape the characters that would otherwise be read as markup.
MMO.core.strings.escapeRegexjs Escape a part of a regex <MDN|https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping>
MMO.core.path.escapeReplacerjs MMO\core\shell\evalColors Used to put shell colors directly into a text Any SHELL_* colors must be in brackets to be replaced
MMO\core\shell\exec Execute a command through php
exec, serializing the parameters passedMMO\core\shell\execInBackground Launch a command in the background (fire and forget), serializing the parameters passed
MMO.schemas.existsjs MMO\core\arrays\exists Tells if a value exists at the given json-path (without fetching it).
MMO\core\files\exists Test if a local file, or a remote url (via a curl HEAD request), exists/is reachable.
MMO\core\server\exitCode Map an HTTP status code to a shell exit code (the EXIT_* constants), for a CLI request routed through the same Application/Route pipeline as an HTTP one (\MMO\core\Application::run()).
MMO\core\shell\explain Print a paragraph of explanation, indented and wrapped to the terminal (100 columns at most), so that it reads as prose rather than as lines running off the screen.
MMO\core\paths\extension Extract the extension of a path (the part after the LAST '.' in its last segment), without the leading '.'.
MMO\core\server\extension Reverse lookup: find a file extension whose MIMES entry matches a given content-type header (the first usable content-type found in $header, tried against every entry of MIMES).
MMO\core\uris\extension Extract the extension from a uri's path (query/fragment are stripped first, so they don't interfere).
MMO\core\server\extensionToContentType Build a
Content-Typeheader value for a file extension (falling back to 'txt' if $ext is unknown).MMO\core\server\extractContentType Strip a leading
Content-Type:label (if present) off a header line, and split it on,into its individual content-type values (a header CAN legally list several, comma-separated).MMO.core.server.extractHashjs Extract the hash from an url
MMO.core.server.extractLinkjs Extract properties and url of an http Link.
MMO.core.strings.extractPrintfjs Reverse of MMO.core.strings.printf: recover the values a format was filled with.
MMO.core.server.extractQueryjs Extract the url parameters from an url with a query
MMO.core.strings.extractRegexSourcejs Extract regex source and clear some stuff
MMO\client\extractSASSConfig Extract sass configuration from a sass file
MMO.schemas.extractTypesjs Extract the types of a raw schema (stored in an array)
MMO.fetchjs Fetch a request async
MMO.schemas.fetchjs Fetch a schema by url
MMO.fetchAPIjs Fetch a request's json response async formatted by the mmoframework (with logs and links) > Note: if a schema's link is provided, the schema is fetched and added to the response > Note: data are au…
MMO.schemas.fetchClassSchemasjs Fetch all schemas defined in the framework
MMO.fetchFilejs Fetch a request's file response async (as blob) and open a window with the data.
MMO.fetchJSONjs Fetch a request's json response async
MMO.fetchSvgjs Fetch and parse an svg document.
MMO.fetchTextjs Fetch a request's text response async
MMO.fetchXmljs Fetch and parse an xml document.
MMO\core\files\filename Get the underlying filename (for a stream) or command (for a process) of a resource.
MMO.fileUrljs Same as MMO.url, except the base of the url is set to
baseurl(which is the real url for files) instead ofsiteurlMMO\core\arrays\filterKeys Filter (and, in select mode, reorder) an array's keys recursively.
MMO\core\debug\filterTraces Filter traces
MMO\core\strings\findMatching Find the matching closing delimiter for the first opening delimiter found at/after $offset, correctly handling nesting (
{a{b}c}), escaped characters, and quoted sub-sequences (ignored entirely, b…MMO\core\strings\findOffset Get the character offset for a specific line/column position in a text.
MMO\core\versions\findVersion Find the version(s) in $versions that satisfy $constraint.
MMO.core.dom.firstNodeInRangejs MMO.core.dom.firstTextNodejs MMO.core.dom.fixedNodejs Get the Element from which a fixed element has his position computed.
MMO\core\debug\flags Convert a string into a debug constant mask
MMO\core\dates\format Format a date, then translate its month/day names to $lang (translateDate()).
MMO\core\debug\formatBytes Format bytes to human readable size
MMO\core\strings\formatFraction Format a float as an integer part plus its best rational approximation (a fraction), e.g.
MMO\core\arrays\from Convert any value into a plain array: an \MMO\core\interfaces\iArray is unwrapped via toArray(), a Generator/Traversable is consumed via \iterator_to_array(), a plain array is returned as-is, and a…
MMO.math.GCDjs Get the greatest common divisor, by Euclid's algorithm.
MMO.core.strings.generatePasswordjs Draw a random password, retrying until every required character class is present.
MMO\core\arrays\get Get a value at the given json-path.
MMO\core\files\get Read the content of a file (given as a filename, read directly) or an already-open stream resource.
MMO\core\strings\getAccents The accent-folding table stripAccents()/textRegex() are built on: maps every accented Latin character to its plain-letter equivalent (e.g.
MMO.core.dom.getAttributesjs Get element attributes as an object
MMO.core.dom.getBoundingRectjs Get bounding rect relative to a parent
MMO.schemas.getByIdjs MMO.core.dom.getComputedStylejs MMO.core.dom.getComputedStyleValuejs Get a computed style and convert it to a number (interpreting the unit)
MMO.core.dom.getCoordjs Get the element's absolute coordinates (left, top) using offset and scroll
MMO.core.dom.getCSSPathjs Get a unique css selector for a node It is usefull to have a visual path for a node, but it should not be used to retrieve the node.
MMO\core\shell\getCursor Get the current position of the terminal cursor
MMO\core\dates\getDayNames Get the 7 day names for $lang, in week order (Monday first).
MMO.core.dom.getEmValuejs Get the node's font-size in pixels (the value 1em resolves to).
MMO\core\shell\getEnv Alias to getenv(). Return null instead of false in case value is not set in the env
MMO.core.dom.getFocusableElementsjs MMO\core\dates\getFrenchBusinessDays Same as getWorkingDays(), but automatically excludes French public holidays (getFrenchHolidays()) for every year the range spans (not just $startDate's year -- a range crossing into a new…
MMO\core\dates\getFrenchHolidays Get every French public holiday of a given year, as
['Y-m-d' => 'name', ...], sorted by date.MMO\core\shell\getInput The stream user input is read from.
MMO\core\dates\getMonthNames Get the 12 month names for $lang, in calendar order (January first).
MMO.core.dom.getMouseEventCaretRangejs Get the text position a pointer event landed on, across the three browser apis.
MMO.core.dom.getNextFocusjs The focusable element sitting just after a node in the document's tab order.
MMO.core.dom.getPathjs Get a unique path for node as indexes in childnodes WARNING: the path is reversed, so iteration starts from length-1 and not 0
MMO\core\strings\getPlaceholders Get every placeholder in a template, without rendering/matching anything (a thin wrapper over loopTemplate()).
MMO.core.dom.getPreviousFocusjs The focusable element sitting just before a node in the document's tab order.
MMO.core.dom.getRangeNodesjs MMO.core.dom.getStylejs Set css styles
MMO.core.getterjs Create a function that reads an object's property when called.
MMO.core.dom.getTextNodesjs MMO.i18n.getTranslationsjs Get the translation map for a given language
MMO\core\dates\getWorkingDays Compute the number of working days (Mon-Fri, minus $holidays) between two dates, both inclusive.
MMO\core\colors\gradientOf Interpolates a color along a linear gradient between two colors, based on a normalized position (0 to 1).
MMO\core\objects\greaterThan Tells if $a orders after $b (per compare()'s ordering result).
MMO\core\versions\hasAny Test if a version (string, or already-split() array) has a wildcard in any of its first 3 (major/ minor/patch) positions -- unlike isAny(), a partial wildcard like '1.*' counts.
MMO.core.dom.hasAttributesjs Test if element has the given attribute's values
MMO\core\uris\hasAuthority Tells if a uri has a
scheme://authority part at all (of any scheme).MMO\core\strings\hash3 Same as hash3Int(), but base-32-encoded (via PHP's own \base_convert(), NOT this file's own baseConvert()) into a short, compact string.
MMO\core\strings\hash3Int Compute the MurmurHash3 (32-bit) hash of a string, as an int.
MMO\core\strings\hash3Unpack Don't use this function directly unless you know what you are doing.
MMO\core\uris\hasLocalAuthority Tells if a uri's scheme is one of this framework's "local" schemes (\MMO\core\helpers\Uri::$LOCAL_SCHEMES, e.g.
MMO.core.dom.hasParentjs Test whether a node descends from another.
MMO\core\code\header MMO\core\shell\heading Print a title: set apart from what comes before it by a blank line, and ruled across the terminal (100 columns at most) -- how the steps of a long run are told apart at a glance.
MMO.core.markdown.headingTagjs Clamp an heading level to a valid html tag name (h1-h6)
MMO\core\strings\hex Convert a string to its hexadecimal representation, one hex number per byte.
MMO\core\colors\hexToRgb Converts a hex color (6-digit, or the 3-digit CSS shorthand) or a named HTML color to an RGB array.
MMO\core\shell\hideCursor MMO.core.dom.hostjs The custom element owning the shadow root a node lives in.
MMO\core\server\hostname Get the server's own hostname:
$_SERVER['SERVER_NAME']if set, else the system hostname.MMO.core.dom.htmljs Mark markup to be parsed by the functions building nodes from children (MMO.core.dom.appendChildren,
MMO.core.htmlentitiesDecodejs Decode html entities encoded with php function
htmlentities()or js functionMMO.core.htmlentitiesEncode()MMO.core.htmlentitiesEncodejs Equivalent of php function
htmlentities()MMO\core\strings\htmlTable Render a list of records (csvEncode()'s $data shape) as a plain HTML
<table>, guessing the header row from the data's own keys (in the order first seen).MMO\core\server\httpStatus Sanitize a value for use as an HTTP status code: pass it through if it is an int that isHttpStatus(), else fall back to 500.
MMO\core\files\image Load an image file (jpeg/png/gif) as a GD image resource/object.
MMO\core\versions\inc Increment one component (major/minor/patch) of a version, returning the new version string.
MMO\doc\includeDocumentation Include the documentation in the html response This function is added as a job in the application.
MMO.core.dom.includeScriptjs Include script in html <head> or in a node
MMO.core.dom.includeStylejs Include style in html <head> or in a node
MMO\core\strings\indent Indent every line of a text.
MMO.infojs Log an informative message, tagged and colored.
MMO\core\debug\info Return memory info on current execution
MMO\core\server\info Parses phpinfo() output and returns a structured array.
MMO\core\server\infoHTML Capture phpinfo()'s HTML output as a standalone, embeddable fragment: styles are rescoped under
#phpinfo(instead of being global) and the surrounding<html>/<head>/<body>are stripped, so …MMO\core\arrays\inject Inject a configuration into $src recursively: every key of $config is itself a json-path into $src, and its value is set() (recursively merge()d with whatever's already there, by default)…
MMO.core.markdown.insertjs MMO.core.dom.insertAfterjs Insert a node just after another one.
MMO.core.dom.insertNodeInTextjs Insert an Element inside a text element
MMO.core.svg.insertTextjs Insert text in svg and make sure it is not wider than maxWidth
MMO.insertTextjs Insert text in an element
MMO\core\server\ip Get the client's IP address, from the first of
HTTP_CLIENT_IP/HTTP_X_FORWARDED_FOR/REMOTE_ADDRthat's set.MMO\core\paths\isAbsolute Tells if a path is absolute (starts with '/'; for the split/array form, has at least 2 segments and an empty leading one, per split()'s
'/' => ['', '']convention).MMO\core\uris\isAbsolute Tells if a uri is absolute: it has a network authority (
scheme://host/..., or -- in $strict mode -- a local-scheme authority followed by/), or (falling back to \MMO\core\paths\isAbsoluteF…MMO\core\paths\isAbsoluteFilename Same as isAbsolute(), but for a real filename: also recognizes a Windows drive, and (for a string path) a URI authority (
scheme://host/...or//host/...) as making the path absolute.MMO\core\strings\isAlphaNum Test if a string is only made of letters, digits, or the given extra allowed characters.
MMO\core\versions\isAny Test if a version (string, or already-split() array) is a bare wildcard: '*', or a split version whose first 3 elements are all '*' (i.e.
MMO\core\server\isContentType Test whether a
Content-Typeheader matches a given file extension's MIME type(s) (extension()).MMO.core.isEmptyjs Check if object is empty
MMO.core.isEqualjs Check if 2 values are equal (deep)
MMO\core\objects\isEqual Tells if two values are STRICTLY equal, per compare() (i.e.
MMO\core\strings\isEscaped Test if the character at $pos is escaped: preceded by an ODD number of consecutive $escapeChar (an even number means those escape characters escape each other in pairs, leaving $pos itself unescaped).
MMO\core\dates\isFrenchHoliday Tells if a date is a French public holiday (getFrenchHolidays()).
MMO\core\server\isHttpStatus Tells if $status is a plausible HTTP status code (100-599).
MMO\doc\isInNamespaces Check if a namespace is inside a list of other namespaces
MMO\core\shell\isInteractive Tells if the answers are typed by someone at a terminal, rather than read from a pipe, a file or a stream given to setInput.
MMO.core.server.isLinkjs MMO\core\files\isLocal Tells if a uri refers to the local filesystem: no authority at all (a plain path), or a
file:///phar://scheme.MMO\core\dates\isMDYFormat MMO.core.dom.isMergeableNodejs Tells if two nodes can be merged: they have the same type and the same attributes and they are part of the list MMO.core.dom.MERGEABLE_NODES or they are Text nodes
MMO\core\files\isMoreRecent Tells if a file was modified after $time -- or, for a folder (or an already-obtained loopFolder() generator), if ANY file under it was.
MMO\core\server\isOk Tells if a status is a "success" HTTP status: [200, 400).
MMO\core\strings\isPlaceholder Tells if $text is, as a WHOLE, a single placeholder (
{...}) -- e.g.MMO\core\strings\isRegex Test if a string is a syntactically valid PCRE regular expression (delimiters and all).
MMO\core\shell\isRunning Tells if a process with the given PID is currently running.
MMO\core\objects\isSame Tells if two values are equal, in either sense compare() can report equality (strict
true, or the ordering-comparison tie value0).MMO.core.isSameArrayjs Test if two arrays hold the same values, ignoring their order.
MMO\core\objects\isSerialized Tells if an array (recursively) contains at least one serialized-object marker (a
['$' => ...]entry, as produced by serialize()), meaning it needs unserialize() to be turned back into …MMO.inputs.keyboard.isShortcutValidjs Test if shortcut is valid
MMO.core.isSimilarjs Test whether
bis "contained in"a(a one-way, loose comparison).MMO.core.isSimpleObjectjs Test whether a value is a plain data container rather than a class instance.
MMO\core\shell\isTty Tells if the current terminal is a tty (native terminal device)
MMO.core.isUniquejs Check if an array has only unique items
MMO\core\arrays\isUnique Tells if every value in $array is distinct (strict,
===, comparison).MMO.core.server.isUrljs Test whether a string looks like a public web address: an optional scheme, a host and a tld.
MMO.core.server.isUrlRelativejs Tells if url is relative
MMO\core\server\isValidHost Validate whether a string contains a valid value to use as a hostname or IP address.
MMO.core.dom.isVisiblejs Check if element is visible
MMO\core\paths\isWindowsFilename Heuristically tell if a path looks like a Windows path: either it uses
\and no/at all, or it starts with a valid drive letter immediately followed by a separator (or nothing else).MMO.core.dom.isWrappedjs Check if first text element in a node is wrapped in a tag
MMO.core.path.joinjs MMO\core\paths\join Join an array of path segments (as produced by split()) back into a path string, escaping each segment.
MMO\core\uris\join Reverse of split(): join a parts array back into a uri string.
MMO\core\versions\join Reverse of split(): join a split version back into a string, replacing a negative stability int back into its word form (the first STABILITY key with that value -- STABILITY).
MMO\core\paths\joinFilename Same as join(), but converts every
/to\afterwards when $isWindows is true.MMO\core\dates\json Format a date as ISO 8601 (
c), for JSON output.MMO\core\files\json Read and decode a JSON file (\MMO\core\strings\jsonDecode() for $asArray/$vars/$cleanUp).
MMO\core\strings\jsonDecode Decode a JSON string, optionally tolerating non-standard syntax and templating in
{var}values first.MMO\core\strings\jsonEncode Encode a value as JSON, with a sanity check that guards against a common \json_encode() footgun: silently returning the string
'null'for a value it couldn't actually encode (e.g.MMO\core\strings\jsonUnicodeDecode Reverse of jsonUnicodeEncode(): decode a sequence of JSON unicode escapes (backslash, u, then 4 hex digits, repeated) back to a UTF-8 string.
MMO\core\strings\jsonUnicodeEncode Encode a UTF-8 string as a sequence of JSON
\uXXXXunicode escapes (surrogate pairs for anything outside the Basic Multilingual Plane).MMO\core\arrays\keys Get the keys of any iterable (not just a plain array) as a plain array.
MMO.core.ksortjs Reorder an object's keys IN PLACE (a javascript object keeps its insertion order).
MMO\core\versions\ksort Sort an array by its KEYS, treating them as version numbers (sortCompare()).
MMO.core.path.lastKeyjs Get the last segment of a path, WITHOUT unescaping it.
MMO.math.LCMjs Get the least common multiple (the smallest number both a and b divide).
MMO\core\strings\length Count the number of characters (not bytes) in a UTF-8 string, without needing the mbstring extension.
MMO\core\shell\lengthANSI Get length of a text, removing ansi sequences: a character is counted as one whatever its bytes (UTF-8).
MMO\core\objects\lesserThan Tells if $a orders before $b (per compare()'s ordering result).
MMO.core.transitions.linearFnjs Build an easing that bends a linear ramp.
MMO\core\shell\lines Attempt to get the number of lines of the current terminal
MMO\core\strings\lines Split text into lines by $separator, like \explode(), EXCEPT a $separator that falls inside a quoted ($enclosure-delimited) section does not split -- so a CSV-style multi-line quoted field stays on…
MMO.core.linkjs Set a link to another object's property as a property To remove the link just delete the property
MMO.core.linkFnjs Set a function as an object's property To remove the function just delete the property
MMO\doc\linkSees Replace every
@seereference of a markdown text with a link to its target, or with inline code when the target is documented nowhere.MMO.core.strings.listRegexjs Create a regular expression for a serialized list, each properties separated by sep, not ordered.
MMO.i18n.loadjs Load translations for a given language
MMO.loadJSONjs Turn a raw framework API response into usable objects, in place: -
linksare parsed into objects -logsare pushed to the app console - the linkedschemais fetched -databecome MMO.elemen…MMO.core.dom.loopAppendChildrenjs Add children to a node using a generator
MMO\core\files\loopCopy Recursively copy a file or folder, yielding each individual file as it's copied (a folder itself isn't yielded, only the files under it -- but it IS created, even if empty).
MMO\core\files\loopDelete Recursively delete a file or folder (depth-first: a folder's contents are deleted before the folder itself), yielding the path of each thing actually removed as it's removed.
MMO\core\files\loopFolder Lazily list the entries of a folder (files AND subfolders, each yielded individually -- a subfolder is yielded itself, in addition to whatever's recursed into it).
MMO.core.dom.loopInputsjs Yield every form control inside a node, recursively.
MMO.core.dom.loopRangeNodesjs Yield node selected in a range
MMO\core\strings\loopTemplate Loop a template containing placeholders A placeholder has the following format
{?path:type}- ?: if the placeholder is optional [optional] - path: a valid json path (:MUST be changed to~2).MMO.core.dom.loopTextNodesjs Loop through all text nodes inside a node
MMO\core\versions\loopVersions Lazily yield every version in $versions that satisfies $constraint, from highest to lowest (sort()).
MMO\core\colors\luminance Compute the WCAG 2.0 relative luminance of a color (0 = darkest black, 1 = brightest white).
MMO.schemas.makePatternjs Create a regular expression from a string
MMO.core.dom.makeRelativejs Convert an absolute document point into one relative to a node's box.
MMO.core.server.makeUrlRelativejs Make url relative to window location
MMO\core\server\matchAccept Parse a weighted
Accept-family HTTP header (sortAccept()) and find the best-matching entry in $supported: the header's options are tried highest-weight first, and the first one present as a …MMO.core.strings.matchListjs Match a serialized list, with no defined order (any regular expression can match first) If some text is not contained in any captured, but the regex matches, this text is returned at the index '-1'
MMO\core\arrays\matchMask Test each key present in $mask against the corresponding key in $value.
MMO\core\paths\matchMask Try to match a path against a mask made of plain segments,
{name:type}moustache templates (\MMO\core\strings\matchTemplate), and wildcards:*matches exactly one segment,**matches any…MMO\core\uris\matchMask Try to match an uri against a mask.
MMO.core.strings.matchObjectjs Match a serialized object
MMO\core\strings\matchTemplate Match $text against a loopTemplate()-style template, extracting each placeholder's captured (and, if typed, coerced+validated) value into &$matches.
MMO\core\debug\memLimit MMO\core\debug\memRamUsage MMO\core\shell\menu Print a navigable single-choice menu and return the selected key.
MMO.core.mergejs Merge primitive objects or values.
MMO\core\arrays\merge Recursively merge $value into $src: for matching keys whose values are themselves both array-like, merge recursively; otherwise $value's value simply overwrites $src's.
MMO\core\paths\merge Concatenate several paths (segment arrays or path strings) into one, dropping the trailing empty segment of a path when the next one continues it (so joining doesn't produce a doubled
/), and ski…MMO\core\arrays\mergeAt Same as merge(), but merges $value into whatever is already at $path (instead of into $src itself), then writes the result back with set().
MMO\core\arrays\mergeInject A shallow, synchronous cousin of inject(): recursively merge $config into $src and return the result (rather than mutating a reference and honoring the
?/=path-prefix directives), underst…MMO\core\versions\metadata Extract a version's build metadata (the part after '+'), without normalizing the rest of the string.
MMO\core\server\mime Get the MIME type(s) (MIMES) registered for a file extension.
MMO\core\files\move Move file to new destination
MMO\core\shell\moveBack MMO\core\shell\moveCursorCol MMO\core\shell\moveCursorLine MMO\core\files\mtime Get a file/url's last-modified time, locally via \filemtime() or remotely via a curl HEAD request.
MMO\core\files\name Get a short, human-readable identifier for a stream or process resource (for logging/debugging).
MMO\core\dates\nearestWeekDay Get the closest week day (MON-FRI) to the given date: a Saturday snaps back to Friday, a Sunday snaps forward to Monday.
MMO.core.dom.normalizejs Merge child nodes if they are mergeable
MMO\core\strings\normalize Normalize text for loose/accent-insensitive equality comparison: safeIdentifier() then lowercase.
MMO\core\versions\normalize Normalize a version string: strip its build metadata (the
+...suffix, captured into &$metadata), and turn separators (_,-,+, spaces) plus letter/digit boundaries into., so it can be c…MMO\core\paths\normalizeFilename Replace every
\with/, turning a Windows-style path into a plain one split()/join() can handle.MMO\core\dates\numberOfDays Compute the total number of distinct days covered by a list of (possibly overlapping) day intervals, by merging them first (unionOfDayIntervals()) so an overlapping day is only counted once.
MMO.core.strings.objectRegexjs Create a regular expression for a serialized object, each properties separated by sep.
MMO.onDateInputjs Browser fix: a date input silently clears itself when the user types a partial value.
MMO.core.dom.onIndeterminateClickjs This function allow a checkbox to cycle through 3 states: checked, unchecked, indeterminate.
MMO\core\files\open Open a file and return the resulting stream resource, translating the STREAM_* flag bitmask into the right \fopen() mode (always append-mode when writing, so an existing file's content is preserved…
MMO\core\arrays\options The options array behind $options: a typed options object (\MMO\core\interfaces\iOptions) gives its
toArray(), an array is returned as it is.MMO\core\server\origin Get the requesting page's url: the
Refererheader, falling back to theOriginheader.MMO\core\files\package Package a list of files into a phar package WARNING: when creating a PharData (no stub), the filename MUST NOT have
.pharin the extension.MMO\core\shell\padANSI Pad string ingoring ANSI sequences
MMO.core.dom.parentElementjs The parent element, crossing a shadow boundary to the host rather than stopping at it.
MMO\core\shell\parse Parse a command line This command line option parser supports any combination of three types of options [single character options (
-a -bor-abor-c -d=dogor-cd=dog), long options (`--fo…MMO\core\debug\parseBytes MMO\core\strings\parseDocComment Quickly parse a PHP doc comment (`* ...
MMO\client\parseSassArray Converts sass string to an array
MMO\core\schemas\parseType Parse this framework's compact type-description mini-language (used in doc comments, commentInformation(), and anywhere a schema is written by hand as a short string) into a JSON-Schema-shaped…
MMO.pathjs Get a path from the config (used by
MMO.url)MMO\core\uris\path Extract just the path component of a uri (stripping scheme/authority/query/fragment).
MMO.pathExistsjs MMO\core\files\perms Get a file/folder's permissions formatted like unix
ls -l(e.g.MMO\core\files\permsText Format a raw \fileperms()-style integer as a unix
ls -lpermission string.MMO\core\strings\phpStripWhitespace Compact a PHP source string's whitespace (collapse runs of spaces/tabs, strip leading indentation) while preserving line numbers -- unlike stripWhitespace(), this is PHP-token-aware (via \toke…
MMO\core\strings\position The reverse of findOffset(): get the line/column for a given character offset in a text.
MMO.core.transitions.powInFnjs Build an accelerating easing: slow at the start, fast at the end.
MMO.core.transitions.powInOutFnjs Build an easing that accelerates then decelerates, symmetrical around the midpoint.
MMO.core.transitions.powOutFnjs Build a decelerating easing: fast at the start, slow at the end.
MMO.core.preventPropagationjs Alias to stop event propagation
MMO.printjs Print given nodes in a new window
MMO.core.strings.printfjs printf like. variable must be surrounded with {varialble} (injector) ex: printf('Hello, {message}!', {message: 'world'}) > Hello, world!
MMO\core\strings\printf Interpolate context values into
{key}placeholders in $format.MMO\core\strings\printfd Same as printf(), but converts values via describe() instead of render() -- useful for debug messages where you want a value's raw/technical representation rather than its "nice" ren…
MMO\core\shell\printInRect Print lines in a rectangle and returns text's positions in the rectangle This function is safe with ANSI sequences
MMO\core\debug\procInfo MMO\core\shell\progress Print and redraw an in-place progress bar.
MMO\core\shell\prompt Ask for a value, showing the one ENTER keeps, until the answer is a valid one.
MMO\core\shell\promptList Ask for a list of values, separated by commas.
MMO\core\code\propertyType The type a generated property is declared with: a non-nullable class type becomes nullable, so that the property can default to null (a typed property has to be initialized before it is read, and `…
MMO\core\shell\protectShellBuffering Install a SIGINT/SIGTERM safety net so the terminal is not left in raw/no-echo mode if the process is interrupted (e.g.
MMO.providejs Declare a namespace, creating every missing level of it.
MMO\core\debug\PSRFlag Convert framework flags to PSR flags
MMO.core.dom.ptInsidejs Tells if a point is inside a container
MMO\core\arrays\push Append a value to the list at the given json-path (turning a non-list scalar/null already there into a single-element list first, so it can be appended to).
MMO\core\files\put Same as write(), but always appends and creates any missing parent folder (STREAM_PUT = write + create folder).
MMO\core\shell\read Read a command from the user input.
MMO\core\shell\readAnswer Show what ENTER answers, then read the answer.
MMO\core\shell\readCallback Read every key press by the user on the command line (as opposed to fgets which waits on return key)
MMO\core\shell\readKeys Wait for the user to press a key, then read it with every key that came with it -- a paste, fast typing, keys sent in one go over ssh -- one string for each: a character, or a whole escape sequence…
MMO\core\shell\readLine Read one line of user input, without its line ending.
MMO.core.dom.readonlyjs Make every form control inside a node read-only, or writable again.
MMO\core\shell\readOption The half of read that has no terminal to read keys from: the next line of the input is the answer.
MMO\core\shell\readPending Take what the user has typed that nothing has read yet, without waiting for more -- or, given a timeout, waiting that long at most for a first key.
MMO\core\shell\readSecret Ask for a secret (e.g.
MMO\core\strings\regex Turn a plain pattern into a valid delimited regular expression, if it isn't one already (a string that already looks like
<delim>...<delim><flags>is passed through unchanged, plus $flags appended).MMO.inputs.registerjs Declare a gesture class under an event name, so
input.add('{name}')can build it.MMO.schemas.registerjs Register a schema so it can be looked up by id.
MMO.core.path.relativejs Get a relative path compare to a root path.
MMO\core\paths\relative Express $path relative to $root (both simplified first, so
../.in either are resolved).MMO\core\uris\relative The reverse of absolute(): strip out from $uri whatever it shares with $root (scheme, host/user/pass, matching port, and the common leading part of the path -- \MMO\core\paths\relative())…
MMO\core\paths\relativeFilename Same as relative(), but drive-aware (via simplifyFilename() when $isWindows is true).
MMO.reloadJSjs Reload the library's <script> tags in place, cache-busted.
MMO.core.dom.removejs Detach a node, or every node of a NodeList.
MMO\core\shell\removeANSI Strip ANSI escape sequences (colors, cursor movement, ...) from a text, leaving only the visible characters.
MMO.core.dom.removeChildrenjs Detach a list of nodes, flattening nested arrays and skipping null entries.
MMO\core\strings\render Render any value into a "nice", human-facing string: - a scalar is cast to string directly - an \MMO\core\interfaces\iRenderable renders itself - an object with __toString() uses that - an iterable…
MMO\core\strings\renderTemplate Fill in a loopTemplate()-style template's placeholders with values from $data (by default rendered through render(); pass $printer to customize).
MMO.requirejs Declare that this file needs a namespace another one provides.
MMO\core\uris\resolve Resolve $uri against a base uri and simplify the resulting path -- a direct implementation of RFC 3986's reference resolution algorithm (unlike absolute(), this correctly treats $base's path a…
MMO\core\shell\restoreShellBuffering Undo one call to stopShellBuffering.
MMO\core\dates\RFC Format a timestamp per RFC 1123/2822 (RFC_FORMAT), as used in HTTP dates and email headers.
MMO\core\colors\rgbToHex Converts RGB values to a hex color.
MMO.core.dom.rootjs Get root HTML
MMO\core\files\rootFolder Get the deepest common ancestor folder shared by a list of filenames.
MMO.core.transitions.runjs Run an animation
MMO\core\strings\safeIdentifier Turn arbitrary text into a safe identifier: strip accents (stripAccents()), trim, and replace every character that isn't a letter/digit/underscore (or in $authorizedChar) with $replace.
MMO.core.strings.safeJsonEncodejs Alias to JSON.stringify, safe for circular references WARNING: don't use to stringify content that will be decoded.
MMO.core.markdown.safeUrljs Make an url safe to use as a link/image target.
MMO\core\shell\say Print an informational message, prefixed with '- ' in purple.
MMO\core\debug\sbenchmark Benchmark a closure Returns result in a string ex: $a = new DummyClass(); echo \MMO\core\debug\benchmark('test', function() use ($a) {..}, 10000);
MMO\core\files\scanFolder Same as loopFolder(), but eagerly collects the results into an array, naturally case-insensitively sorted and then REVERSED (so entries come back in descending natural order).
MMO.core.strings.scorejs Score a searched text with some text content
MMO\core\strings\scoreWord Fuzzy-match score of $w1 against $w2 (e.g.
MMO.screenshotjs Capture the current tab as an image.
MMO.scriptErrorjs Log an error that happen in an inline script
MMO\core\server\scriptName Get the absolute filename of the currently running script (works both under a web server and on the CLI).
MMO.core.dom.scrollIntoViewjs Open all the details containing a node
MMO.core.strings.searchjs Search text inside a list of urls + texts
MMO\doc\seeLabel MMO\doc\seeParts MMO\doc\seeTarget MMO\doc\seeTargets Every target the
@seereferences of a text point at, cleaned of the punctuation the sentence around it glued on (@see stop.,(stop)), and split when several are written as one (`@see get…MMO\core\shell\select Print a menu of choices and return the keys of the selected options
MMO.core.dom.selectRangejs MMO.sendMailjs Ask the server's mail controller to send a templated mail.
MMO.core.strings.serializejs Convert any variable into a valid string
MMO\core\objects\serialize Serialize an object (or an array possibly containing objects) into a plain, JSON-safe nested array that
MMO\core\shell\serialize Serialize the command All parameters with no string key (plain args) are left untouched (no escape).
MMO\core\objects\serializeProperties Reflect over an object's properties and serialize them into a plain array (the default serialization strategy used by serialize() for objects that don't implement iSerializable themselves).
MMO\core\arrays\set Set a value at the given json-path, creating missing intermediate arrays by default.
MMO\core\files\set Same as write(), but always replaces the stream's entire existing content (STREAM_SET = write + clear).
MMO.core.dom.setAttributejs Set element attribute
MMO.core.dom.setAttributesjs Set element attributes
MMO.core.dom.setBoundingRectjs MMO\core\shell\setCursor MMO\core\shell\setInput Read the user's answers from another stream than STDIN: a file of answers, or -- in a test -- a
php://memorystream written beforehand.MMO.core.dom.setOffsetjs Set the current offset of the element
MMO.core.dom.setSizejs Set a node's width and height, queued like every other style write.
MMO.core.dom.setStylejs Queue style update in animation frame
MMO.core.dom.setStylesjs Set css styles
MMO\core\dates\setTimezone Set the default timezone for the rest of the request (date_default_timezone_set()).
MMO.inputs.keyboard.shortcutIconjs Create an icon for a keyboard shortcut, using this table: ⎋ ` 1 2 3 4 5 6 7 8 9 0 - = ⌫ ⎀ ⤒ ⇞ ⇥ Q W E R T Y U I O P [ ] \ ⌦ ⤓ ⇟ 🄰 A S D F G H J K L ; ' ↵ ⇧ Z X C V B N M , .
MMO\core\shell\showCursor MMO\core\shell\sigchildEnabled Tells if PHP has been compiled with the '--enable-sigchild' option.
MMO.core.path.simplifyjs Simplify a path by removing
.and `and trying to get rid of..`.MMO\core\paths\simplify Simplify a path by resolving
.and..segments and dropping empty ones, without touching the filesystem (a leading..past the root is dropped for an absolute path -- you can't go above/-…MMO\core\uris\simplify Simplify a uri's path component in place (resolving
./..-- \MMO\core\paths\simplify()), leaving the rest of the uri untouched.MMO\core\paths\simplifyFilename Same as simplify(), but drive-aware: a Windows drive is protected from being simplified away (
c:\..staysc:\, it never turns into just\, since going "above" the drive doesn't mean anyt…MMO\core\files\size Format a byte count as a human-readable size, with French unit abbreviations (o/ko/Mo/Go/To).
MMO.sleepjs MMO\core\files\sort Sort a list of filenames "naturally" (so 'file2' sorts before 'file10' -- \strnatcmp()).
MMO\core\versions\sort Sort an array by its VALUES, treating them as version numbers (sortCompare()).
MMO\core\server\sortAccept Parse a (comma-separated, or already split)
Accept-family HTTP header (Accept,Accept-Language, ...) and sort its options by weight (the;q=parameter), highest first.MMO\core\versions\sortCompare Same as compare() (with no operator), except a wildcard version always sorts BEFORE the versions it matches (so
1.*sorts before1.2.3) rather than comparing equal to them -- this is what …MMO\core\arrays\sortPreserve Sort an array in place using $sortFn, like \uasort()/\uksort(), but stable: when two items are equivalent ($sortFn returns 0), their original relative order is preserved instead of being left unspe…
MMO\core\packages\sortUrls Sort a (possibly nested) array of source urls by urlPriority, in place.
MMO.core.path.splitjs sometimes path is a solo number (in array).
MMO.core.strings.splitjs Split words (utf-8) with a set of delimeters
MMO\core\paths\split Split a path string by
/into segments, unescaping each one.MMO\core\shell\split Split string on space, except for quoted words
MMO\core\uris\split Parse a uri into its RFC 3986 parts.
MMO\core\versions\split Split a version string into an array of at least 3 elements
[major, minor, patch, ...prerelease], per Semantic Versioning.MMO\core\shell\splitANSI Split text ignoring ANSI sequences
MMO\core\code\splitClass Split a class name into its namespace and its short name.
MMO\core\paths\splitFilename Same as split(), but normalizes
\to/first when $isWindows is true.MMO\core\uris\splitQuery Same as \parse_str(), except it distinguishes the three ways an "empty" query value can be written -- the exact reverse of buildQuery(): -
xxx=->''(empty string) -xxx(no=at all)…MMO\core\debug\standardTraces Standardize traces returned by an Exception or debug_backtrace
MMO\core\server\statusMessage Get the human-readable message for an HTTP status or shell exit code (MESSAGES).
MMO\core\shell\stopShellBuffering Stop shell line buffering so you can capture direct input from user, without waiting for a flush (ENTER)
MMO.core.strings.stripAccentjs Strip accent of string
MMO\core\strings\stripAccents Replace every accented Latin character in $value with its plain-letter equivalent (getAccents()).
MMO\core\strings\stripWhitespace Collapse runs of horizontal whitespace to a single space, strip leading indentation on every line, and remove blank lines -- a generic text-compacting helper (NOT PHP-token-aware; phpStripWhit…
MMO\core\shell\substrANSI substr() ignoring ANSI sequences: offset and length count visible characters, whatever their bytes (UTF-8).
MMO\core\shell\success Print what went right, prefixed with '✔ ' in green.
MMO\core\shell\supportColor Tells if the current output supports ANSI colors/escape sequences.
MMO\core\shell\supportPty Tells if the current terminal support pty (pseudo terminal device).
MMO\client\SVGSprite Compile a list of svg files into a svg sprite.
MMO\core\shell\table Make a table text WARNING: to make sure columns are ordered correctly, make sure last item has all the columns in the right order
MMO\core\files\temporaryFilename Create an empty, uniquely-named temporary file (in the
{tmp}path alias) and return its filename.MMO\core\files\temporaryFolder Create an empty, uniquely-named temporary FOLDER (in the
{tmp}path alias) and return its filename.MMO\core\code\test The source of a first test for a class, for the library's phpunit suite.
MMO\core\colors\textColor Pick whichever of 'black'/'white' text reads better on top of the given background color.
MMO\core\strings\textRegex Build a case/accent-insensitive regex that matches $value literally, but where every letter also matches any of its accented forms (e.g.
MMO\core\dates\timezone MMO.core.strings.toBooleanjs Read a boolean the way an html attribute or a query parameter carries it: the STRINGS '0', '', 'false' and 'FALSE' are false, unlike plain javascript truthiness.
MMO.core.strings.toCamelCasejs Convert words into a camel case valid string ex: font-weight => fontWeight
MMO.core.dom.toggleRangeTextWrappingjs Toggle wrapping text content in a selection.
MMO\core\dates\translateDate MMO.core.path.trimSplitjs Split a path, removing starting and endding '/'
MMO\core\objects\tryEnumFrom Get an enum case from its backing value (for a BackedEnum) or its case name (for any enum), without throwing.
MMO\core\schemas\typeLength The length of the type a text starts with, read the way phpstan reads a doc tag: in
list<string> the genres, the type islist<string>.MMO.schemas.typeofjs Get the JSON-Schema type name of a value.
MMO\core\schemas\typeOf Get the JSON-Schema primitive type name of a PHP value (as used in a schema's
typearray).MMO\core\schemas\typeOfText Guess the JSON-Schema type of a raw text value (e.g.
MMO.core.UIDjs Get a stable numeric id for an object, assigning one on first use.
MMO.core.path.unescapejs MMO\core\paths\unescape Reverse of escape().
MMO.core.path.unescapeReplacerjs MMO\core\dates\unionOfDayIntervals Merge a list of (possibly overlapping or adjacent) day intervals into the smallest set of non-overlapping intervals that covers the same days.
MMO\core\objects\uniqueClassID Get a small, stable, per-class-sequential id for an object (1, 2, 3, ...
MMO\core\arrays\uniqueList Merge one or more iterables and keep only the first occurrence of each (strictly,
===) distinct value, re-indexed as a plain list (original keys are discarded).MMO\core\arrays\uniqueMap Same as uniqueList(), but preserves the (first-seen) key of each distinct value instead of re-indexing.
MMO.uniqueObjectIDjs Get a stable numeric id for an object, assigning one on first use.
MMO.schemas.unregisterjs Forget a registered schema.
MMO\core\uris\unresolve The reverse of resolve(): recover the relative uri that, resolved against $base, would produce $uri.
MMO\core\objects\unserialize Turn data produced by serialize() back into live objects/arrays.
MMO\core\objects\unserializeDateTime Factory used by unserialize() to restore a DateTime serialized by serialize().
MMO\core\objects\unserializeDateTimeImmutable Same as unserializeDateTime(), but returns a DateTimeImmutable.
MMO\core\objects\unserializeEnum Factory used by unserialize() to restore an enum case serialized by serialize() (
['$' => ...unserializeEnum, $class, $case->name]).MMO\core\objects\unserializeProperties Restore an object's properties from serialized data, via reflection (bypassing setters).
MMO.core.unwatchjs Unwatch an object's property ONLY set the value to MMO.core.UNWATCH_EVENT.
MMO.core.server.updateQueryjs Update url query
MMO.core.dom.updateStylesjs Update queue styles in given node
MMO.urljs Replace paths placeholder
{xxx}in an url.MMO\core\server\url Get the current request's full url.
MMO\core\packages\urlPriority Rank a source url so lower-priority (cheaper/faster to read) sources are processed first by sortUrls.
MMO\core\strings\utf8Split Split a UTF-8 string into an array of its characters (not bytes -- a multi-byte character stays whole).
MMO\core\strings\UTF8ToHtml Convert every 4-byte UTF-8 character (i.e.
MMO\core\dates\validate Test if $value can be parsed by \DateTime::createFromFormat() using $format, AND round-trips back to exactly the same string when re-formatted -- i.e.
MMO\core\schemas\validateFormat Validate a string against a JSON-Schema
formatkeyword value.MMO.schemas.validatePrimitiveTypejs Validate primitive type
MMO\core\paths\validWindowsDrive Tells if a string is a syntactically valid Windows drive designation (a name made of characters allowed in a Windows filename, followed by
:).MMO.core.transitions.valuejs Get the value of a transition at a given step
MMO.core.dom.waitUntilVisiblejs Get a promise waiting for an element to become visible
MMO\core\arrays\walk The low-level primitive get()/exists()/set()/delete()/push() are all built on: walk down a json-path (
/-separated, RFC-6902-escaped -- \MMO\core\paths\split()) through nested arrays/Arr…MMO.warningjs Log a warning, tagged and colored, keeping the CALLER's file and line in the console.
MMO\core\shell\warning Print a warning message, prefixed with '!
MMO.core.watchjs Watch for a change on a proerty's value Redefine object's property with a getter and a setter.
MMO\core\shell\windowsConsoleSize Parse
mode con's output (windows only).MMO\core\shell\wrapANSI Wrap a text so that no line is wider than $width visible characters -- an ANSI sequence takes no room, and a character is counted as one whatever its bytes (UTF-8).
MMO\core\files\write Write $text to a stream.
MMO\core\shell\writeAt MMO\core\files\zip Open a zip archive, throwing a descriptive exception (rather than returning an error code) on failure.
Constants73
MMO.$js Make sure node is a dom element.
MMO.math.ALLOW_ALLjs MMO.math.ALLOW_EMPTYjs ALLOW_SPAN | ALLOW_OVERFLOW
MMO.math.ALLOW_OVERFLOWjs ALLOW_VALUE_SPAN | ALLOW_THIS_SPAN
MMO.math.ALLOW_SPANjs MMO.math.ALLOW_SPAN_OVERFLOWjs MMO.math.ALLOW_THIS_SPANjs MMO.math.ALLOW_VALUE_SPANjs MMO.core.dom.BOOL_ATTRIBUTESjs MMO.inputs.BUT_LEFTjs MMO.inputs.BUT_RIGHTjs MMO.inputs.BUT_WHEELjs MMO.i18n.DATE_PREFIXjs MMO.inputs.DRAG_HEIGHTjs MMO.inputs.DRAG_MOVEjs MMO.inputs.DRAG_MOVE_Xjs MMO.inputs.DRAG_MOVE_Yjs MMO.inputs.DRAG_NONEjs MMO.inputs.DRAG_ROTATEjs MMO.inputs.DRAG_SIZEjs MMO.inputs.DRAG_STRETCHjs MMO.inputs.DRAG_WIDTHjs MMO.inputs.DRAG_Xjs MMO.inputs.DRAG_Yjs MMO.core.EVENTS_SYMBOLjs Thanks to https://github.com/Hypercubed/mini-signals
MMO.math.HCFjs MMO.core.IDjs MMO.core.SYMBOL_MODEL = Symbol('MMO.core.Model'); MMO.core.MODEL_EVENT_REMOVE = Symbol('Model.event.remove'); MMO.core.MODEL_EVENT_ALL = Symbol('Model.event.all'); MMO.core.MODEL_EVENT_DONE = Symbo…
MMO.inputs.INPUT_CLASSjs MMO.math.INTERVAL_CONTAINjs MMO.math.INTERVAL_END_AFTERjs interval's end is before this start
MMO.math.INTERVAL_END_BEFOREjs interval's start is after this end
MMO.math.INTERVAL_INSIDEjs interval's end is after this end
MMO.math.INTERVAL_LEFTjs MMO.math.INTERVAL_LEFT_OVERFLOWjs MMO.math.INTERVAL_RIGHTjs MMO.math.INTERVAL_RIGHT_OVERFLOWjs MMO.math.INTERVAL_START_AFTERjs interval's start is before this start
MMO.math.INTERVAL_START_BEFOREjs MMO.core.MAP_CHANGEDjs function (<Symbol> MMO.core.MAP_CHANGED, <MMO.core.Map> map).
MMO.core.MAP_CONNECTjs function (<Symbol> MMO.core.MAP_CONNECT, <MMO.core.Map> parent, <string|int> key, <MMO.core.Map> value).
MMO.core.MAP_DISCONNECTjs function (<Symbol> MMO.core.MAP_DISCONNECT, <MMO.core.Map> parent, <string|int> key, <MMO.core.Map> value).
MMO.core.MAP_INDEX_CHANGEDjs function (<char> MMO.core.MAP_INDEX_CHANGED, <MMO.core.Map> map, <string|int> key, <int> oldIndex).
MMO.core.MAP_KEY_CHANGEDjs function (<char> MMO.core.MAP_KEY_CHANGED, <MMO.core.Map> map, <string> key, <string> oldKey).
MMO.core.MAP_VALUE_CHANGEDjs function (<char> MMO.core.MAP_VALUE_CHANGED, <MMO.core.Map> map, <string|int> key).
MMO.core.MAP_VALUE_CREATEDjs function (<char> MMO.core.MAP_VALUE_CREATED, <MMO.core.Map> map, <string|int> key).
MMO.core.MAP_VALUE_DELETEDjs function (<char> MMO.core.MAP_VALUE_DELETED, <MMO.core.Map> map, <string|int> key).
MMO.core.MAP_WATCHESjs MMO.core.dom.MERGEABLE_NODESjs MMO.core.path.REGEX_ESCAPEjs MMO.core.APIRequester.REGEX_FILTERjs MMO.core.server.REGEX_LINKjs MMO.core.server.REGEX_LINK_ATTRjs MMO.core.path.REGEX_UNESCAPEjs MMO.core.REG_BYTEjs MMO.core.REG_DATEjs MMO.core.REG_DATETIMEjs MMO.core.REG_TIMEjs MMO.core.REG_UNIXTIMEjs MMO.core.RFC_DATEjs MMO.core.RFC_TIMEjs Date time as defined in RFC3339 1: year (Y) 2: month (m) 3: day (d) 4: hour (H) 5: minute (i) 6: seconds (s) 7: .millisecond (u) 8: timezone (P)
MMO.core.markdown.SAFE_URL_SCHEMESjs MMO.schemas.FalseSchema.SHAREDjs MMO.schemas.TrueSchema.SHAREDjs MMO.svg.SVG_NSjs MMO.core.SYMBOL_DOM_REPLACEjs MMO.inputs.SYMBOL_INPUTjs MMO.core.SYMBOL_STYLESjs MMO.inputs.S_DONEjs MMO.inputs.S_IDDLEjs MMO.inputs.S_INjs MMO.uniqueIDjs Unique ids for object so you can test if two objects are the same (same ids)
MMO.core.UNWATCH_EVENTjs MMO.windowjs
Custom elements43
mmo-accordionjs Accordion element to display a list of accordions
mmo-addressjs Address element to display an address to fill in a form
mmo-appjs The application shell.
mmo-boardingjs Kanban board layout with drag & drop support.
mmo-calendarjs Event object: - id: string - title: string - description: string - icon: ?string - color: string - start: Date|string - end: Date|string|null - type: 'hint'|'event' (default event) - if 'hint', use…
mmo-carouseljs Carousel element to display a list of slides in a carousel layout
mmo-chartjs Chart element to display a chart
mmo-chart2js mmo-codejs Code element: shows highlighted source, and -- for language="html" -- a live preview toggled with the top-right icon instead of stacking both at once.
mmo-consolejs Console element to display errors, warning and logs
mmo-doc-examplejs A runnable
@exampleblock.mmo-dropdownjs Dropdown element
mmo-element-docjs Documents any
.jhscustom element, from the element itself.mmo-filterjs Filter element to display a filter to filter a list of items
mmo-graphvizjs Graphviz element
mmo-gridjs Grid element to display a grid layout
mmo-iconjs Icon element to display an icon
mmo-import-socketjs ImportSocket element
mmo-inspectorjs Inspector element
mmo-js-testsjs The javascript test suite, run from the page.
mmo-listjs List element to display a list of items
mmo-markdownjs Markdown element
mmo-notificationjs Notification element to display a notification or a modal following the attached class
mmo-palettejs Palette element to display a palette of colors
mmo-passwordjs Password element to display a password input and a confirm password input
mmo-pathjs Path element to display a path with a schema and a value
mmo-pdfjs PDF element
mmo-progressjs Progress element to display a progress bar
mmo-queryjs Query element to display a query to search for items
mmo-radiojs Radio element to display a radio group to select a value
mmo-sandboxjs Sandbox element
mmo-selectjs Select element to display a list of options
mmo-specimenjs One specimen of the design system: a live example, and the html that produced it.
mmo-swaggerjs Swagger element
mmo-tablejs Table class
mmo-tabsjs Tabs element to display a list of tabs.
mmo-theme-configjs The theme configurator: every value the theme's
.scstoken sources declare, editable, previewed live, and written back as Simple CSS.mmo-tocjs TOC element to create a table of content for a target element
mmo-tooltipjs Tooltip element to display a tooltip
mmo-treejs Tree element to display a tree of items
mmo-validityjs Validity element to display a validity of the elements inside the mmo-validity
mmo-widgetjs Widget element to display a widget in a grid
mmo-workflowjs Workflow element to display a workflow
Views3
import-variablejs ImportConfig element
Issuejs mmo-type-selectjs Type element to select a type and add constraints to it
Mixins6
MMO.elements.CustomAPIElementjs API element WARNING: It is a class mixin.
MMO.elements.CustomElementjs CustomElement mixin WARNING: It is a class mixin.
MMO.CustomErrorjs Build an MMO error class on top of a native one.
MMO.elements.CustomShadowElementjs CustomElement with shadow dom mixin WARNING: It is a class mixin.
MMO.core.mixinEventEmitterjs MMO.elements.Widgetjs Widget WARNING: It is a class mixin.
Guides75
2026-09-code-reviewmmo.core/reviews APImmo.core Arraymmo.core automatic-url-linkingmmo.client/markdown/extended availabilitymmo.client/markdown/extended blockquotesmmo.client/markdown/basic boldmmo.client/markdown/basic ChangeEventmmo.client codemmo.client/markdown/basic Containermmo.core Controllermmo.core Convertersmmo.core Custom-Elementsmmo.client/mcp definition-listsmmo.client/markdown/extended DEPLOYmmo.client documentationmmo.client DOCUMENTATION_GAPSmmo.client Documentsmmo.core emojimmo.client/markdown/extended emphasismmo.client/markdown/basic Entitiesmmo.core Entitymmo.core escaping-charactersmmo.client/markdown/basic Eventsmmo.core Examplesmmo.client/mcp Exceptionsmmo.core fenced-code-blocksmmo.client/markdown/extended footnotesmmo.client/markdown/extended heading-idsmmo.client/markdown/extended headingsmmo.client/markdown/basic highlightmmo.client/markdown/extended horizontal-rulesmmo.client/markdown/basic htmlmmo.client/markdown/basic imagesmmo.client/markdown/basic italicmmo.client/markdown/basic JHSmmo.client JHS-Syntaxmmo.client/mcp JS_REVIEWmmo.client line-breaksmmo.client/markdown/basic linksmmo.client/markdown/basic listsmmo.client/markdown/basic Mapmmo.client MCPmmo.core Modulesmmo.core NewLibrarymmo.core NewProjectmmo.core ordered-listsmmo.client/markdown/basic overviewmmo.client/markdown/basic overviewmmo.client/markdown/extended Overviewmmo.client/mcp Overviewmmo.doc/mcp Pagesmmo.client paragraphsmmo.client/markdown/basic Parsermmo.core Printersmmo.core Routermmo.core SASS_ARCHITECTURE_REVIEWmmo.client SASS_FIX_PLANmmo.client Schemammo.core SCS - Simple cascading style.v0.7mmo.client SCS_DESIGN_SYSTEMmmo.client SECURITY_REVIEWmmo.client Serializationmmo.core SimpleCSSmmo.client strikethroughmmo.client/markdown/extended Stylesmmo.client Stylingmmo.client/mcp subscriptmmo.client/markdown/extended superscriptmmo.client/markdown/extended tablesmmo.client/markdown/extended task-listsmmo.client/markdown/extended Testingmmo.core unordered-listsmmo.client/markdown/basic Views-And-Datammo.client/mcp Workflowmmo.client
Nothing in the index matches these filters.