Skip to content

Commit ce32931

Browse files
committed
1.0.2 Release
1 parent dd9402e commit ce32931

File tree

11 files changed

+68
-36
lines changed

11 files changed

+68
-36
lines changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
* PureMVC Typescript Utility - State Machine - Copyright © 2007-2025 Cliff Hall
1+
* PureMVC Typescript Utility - State Machine - Copyright © 2007-2025 Neil Manuell, Cliff Hall
22
* PureMVC - Copyright © 2007-2025 Futurescale, Inc.
33
* All rights reserved.
44

README.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
## [PureMVC](http://puremvc.github.com/) [Typescript](https://github.com/PureMVC/puremvc-typescript-multicore-framework) Utility: State Machine
22
This utility provides a simple yet effective Finite State Machine implementation, which allows the definition of discrete states, and the valid transitions to other states available from any given state, and the actions which trigger the transitions. A mechanism is provided for defining the entire state machine in JSON and having a fully populated StateMachine injected into the PureMVC app.
33

4-
* [NPM Package](https://www.npmjs.com/package/@puremvc/puremvc-typescript-util-state-machine?activeTab=readme)
5-
6-
## Status
7-
Production - [Version 1.0.1](https://github.com/PureMVC/puremvc-typescript-util-state-machine/blob/master/VERSION)
4+
## Installation
5+
```shell
6+
npm install @puremvc/puremvc-typescript-multicore-framework
7+
npm install @puremvc/puremvc-typescript-util-state-machine
8+
```
89

910
## Platforms / Technologies
10-
* [Typescript](http://en.wikipedia.org/wiki/Typescript)
11+
* [Typescript](http://typescriptlang.org)
12+
* [PureMVC MultiCore](https://github.com/PureMVC/puremvc-typescript-multicore-framework)
13+
* [NPM](https://www.npmjs.com/package/@puremvc/puremvc-typescript-util-state-machine?activeTab=readme)
14+
15+
## Ported Utility
16+
* This is a direct port of the original [AS3 StateMachine utility](https://github.com/PureMVC/puremvc-as3-util-statemachine)
1117

1218
## State Representation
1319
* The States held and navigated by the StateMachine are instances of a State class, which carries several critical pieces of information about that State. Each State has optional associated Notifications to be sent on entry into the State and exit from the State.
@@ -76,7 +82,7 @@ Production - [Version 1.0.1](https://github.com/PureMVC/puremvc-typescript-util-
7682
* An exiting notification is defined only for exiting the OPEN state to illustrate that entering and exiting notifications are optional.
7783

7884
## License
79-
* PureMVC Typescript Utility - State Machine - Copyright © 2007-2025 Neil Manuell, Cliff Hall
85+
* PureMVC Typescript Utility - State Machine - Copyright © 2007-2025 Neil Manuell, [Cliff Hall](https://github.com/cliffhall)
8086
* PureMVC - Copyright © 2007-2025 Futurescale, Inc.
8187
* All rights reserved.
8288

VERSION

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
PureMVC Typescript Utility - State Machine
22
--------------------------------------------------------------------------
3-
Release Date: 4/13/25
3+
Release Date: 4/22/25
44
Platform: Typescript
55
Version: 1
66
Revision: 0
7-
Minor: 1
7+
Minor: 2
88
Authors: Cliff Hall <[email protected]>
99
--------------------------------------------------------------------------
1010

1111
1.0.0 Initial port from the AS3 source.
1212
1.0.1 NPM Package link
13+
1.0.2 Fix entry point in package.json

docs/assets/highlight.css

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,43 @@
11
:root {
2+
--light-hl-0: #795E26;
3+
--dark-hl-0: #DCDCAA;
4+
--light-hl-1: #000000;
5+
--dark-hl-1: #D4D4D4;
6+
--light-hl-2: #A31515;
7+
--dark-hl-2: #CE9178;
28
--light-code-background: #FFFFFF;
39
--dark-code-background: #1E1E1E;
410
}
511

612
@media (prefers-color-scheme: light) { :root {
13+
--hl-0: var(--light-hl-0);
14+
--hl-1: var(--light-hl-1);
15+
--hl-2: var(--light-hl-2);
716
--code-background: var(--light-code-background);
817
} }
918

1019
@media (prefers-color-scheme: dark) { :root {
20+
--hl-0: var(--dark-hl-0);
21+
--hl-1: var(--dark-hl-1);
22+
--hl-2: var(--dark-hl-2);
1123
--code-background: var(--dark-code-background);
1224
} }
1325

1426
:root[data-theme='light'] {
27+
--hl-0: var(--light-hl-0);
28+
--hl-1: var(--light-hl-1);
29+
--hl-2: var(--light-hl-2);
1530
--code-background: var(--light-code-background);
1631
}
1732

1833
:root[data-theme='dark'] {
34+
--hl-0: var(--dark-hl-0);
35+
--hl-1: var(--dark-hl-1);
36+
--hl-2: var(--dark-hl-2);
1937
--code-background: var(--dark-code-background);
2038
}
2139

40+
.hl-0 { color: var(--hl-0); }
41+
.hl-1 { color: var(--hl-1); }
42+
.hl-2 { color: var(--hl-2); }
2243
pre, code { background: var(--code-background); }

docs/classes/FSMInjector.html

Lines changed: 4 additions & 4 deletions
Large diffs are not rendered by default.

docs/classes/State.html

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

docs/classes/StateMachine.html

Lines changed: 11 additions & 11 deletions
Large diffs are not rendered by default.

docs/index.html

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
<!DOCTYPE html><html class="default" lang="en" data-base="."><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>@puremvc/puremvc-typescript-util-state-machine</title><meta name="description" content="Documentation for @puremvc/puremvc-typescript-util-state-machine"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">@puremvc/puremvc-typescript-util-state-machine</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>@puremvc/puremvc-typescript-util-state-machine</h1></div><div class="tsd-panel tsd-typography"><a id="puremvc-typescript-utility-state-machine" class="tsd-anchor"></a><h2 class="tsd-anchor-link"><a href="http://puremvc.github.com/">PureMVC</a> <a href="https://github.com/PureMVC/puremvc-typescript-multicore-framework">Typescript</a> Utility: State Machine<a href="#puremvc-typescript-utility-state-machine" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>This utility provides a simple yet effective Finite State Machine implementation, which allows the definition of discrete states, and the valid transitions to other states available from any given state, and the actions which trigger the transitions. A mechanism is provided for defining the entire state machine in JSON and having a fully populated StateMachine injected into the PureMVC app.</p>
2-
<ul>
3-
<li><a href="https://www.npmjs.com/package/@puremvc/puremvc-typescript-util-state-machine?activeTab=readme">NPM Package</a></li>
4-
</ul>
5-
<a id="status" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Status<a href="#status" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Production - <a href="https://github.com/PureMVC/puremvc-typescript-util-state-machine/blob/master/VERSION">Version 1.0.1</a></p>
2+
<a id="installation" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Installation<a href="#installation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code class="shell"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><span class="hl-1"> </span><span class="hl-2">@puremvc/puremvc-typescript-multicore-framework</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><span class="hl-1"> </span><span class="hl-2">@puremvc/puremvc-typescript-util-state-machine</span><span class="hl-1"> </span>
3+
</code><button type="button">Copy</button></pre>
4+
65
<a id="platforms--technologies" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Platforms / Technologies<a href="#platforms--technologies" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><ul>
7-
<li><a href="http://en.wikipedia.org/wiki/Typescript">Typescript</a></li>
6+
<li><a href="http://typescriptlang.org">Typescript</a></li>
7+
<li><a href="https://github.com/PureMVC/puremvc-typescript-multicore-framework">PureMVC MultiCore</a></li>
8+
<li><a href="https://www.npmjs.com/package/@puremvc/puremvc-typescript-util-state-machine?activeTab=readme">NPM</a></li>
9+
</ul>
10+
<a id="ported-utility" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Ported Utility<a href="#ported-utility" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><ul>
11+
<li>This is a direct port of the original <a href="https://github.com/PureMVC/puremvc-as3-util-statemachine">AS3 StateMachine utility</a></li>
812
</ul>
913
<a id="state-representation" class="tsd-anchor"></a><h2 class="tsd-anchor-link">State Representation<a href="#state-representation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><ul>
1014
<li>The States held and navigated by the StateMachine are instances of a State class, which carries several critical pieces of information about that State. Each State has optional associated Notifications to be sent on entry into the State and exit from the State.</li>
@@ -77,7 +81,7 @@
7781
</ul>
7882
<a id="license" class="tsd-anchor"></a><h2 class="tsd-anchor-link">License<a href="#license" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><ul>
7983
<li>
80-
<p>PureMVC Typescript Utility - State Machine - Copyright © 2007-2025 Neil Manuell, Cliff Hall</p>
84+
<p>PureMVC Typescript Utility - State Machine - Copyright © 2007-2025 Neil Manuell, <a href="https://github.com/cliffhall">Cliff Hall</a></p>
8185
</li>
8286
<li>
8387
<p>PureMVC - Copyright © 2007-2025 Futurescale, Inc.</p>
@@ -95,4 +99,4 @@
9599
</li>
96100
</ul>
97101
<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
98-
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#puremvc-typescript-utility-state-machine"><span>PureMVC <wbr/>Typescript <wbr/>Utility: <wbr/>State <wbr/>Machine</span></a><a href="#status"><span>Status</span></a><a href="#platforms--technologies"><span>Platforms / <wbr/>Technologies</span></a><a href="#state-representation"><span>State <wbr/>Representation</span></a><a href="#state-transitions"><span>State <wbr/>Transitions</span></a><a href="#fsm-injector"><span>FSM <wbr/>Injector</span></a><a href="#license"><span>License</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">@puremvc/puremvc-typescript-util-state-machine</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
102+
</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#puremvc-typescript-utility-state-machine"><span>PureMVC <wbr/>Typescript <wbr/>Utility: <wbr/>State <wbr/>Machine</span></a><a href="#installation"><span>Installation</span></a><a href="#platforms--technologies"><span>Platforms / <wbr/>Technologies</span></a><a href="#ported-utility"><span>Ported <wbr/>Utility</span></a><a href="#state-representation"><span>State <wbr/>Representation</span></a><a href="#state-transitions"><span>State <wbr/>Transitions</span></a><a href="#fsm-injector"><span>FSM <wbr/>Injector</span></a><a href="#license"><span>License</span></a></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">@puremvc/puremvc-typescript-util-state-machine</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>

0 commit comments

Comments
 (0)