@ember-nexus/app-core 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/LICENSE +21 -0
- package/README.md +15 -0
- package/dist/browser/index.js +2 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/esm/BrowserEvent/GetServiceResolverEvent.js +21 -0
- package/dist/esm/BrowserEvent/GetServiceResolverEvent.js.map +1 -0
- package/dist/esm/BrowserEvent/index.js +2 -0
- package/dist/esm/BrowserEvent/index.js.map +1 -0
- package/dist/esm/Error/EmberNexusError.js +10 -0
- package/dist/esm/Error/EmberNexusError.js.map +1 -0
- package/dist/esm/Error/LogicError.js +12 -0
- package/dist/esm/Error/LogicError.js.map +1 -0
- package/dist/esm/Error/ParseError.js +12 -0
- package/dist/esm/Error/ParseError.js.map +1 -0
- package/dist/esm/Error/ValidationError.js +14 -0
- package/dist/esm/Error/ValidationError.js.map +1 -0
- package/dist/esm/Error/index.js +5 -0
- package/dist/esm/Error/index.js.map +1 -0
- package/dist/esm/Init.js +29 -0
- package/dist/esm/Init.js.map +1 -0
- package/dist/esm/Service/EventDispatcher.js +98 -0
- package/dist/esm/Service/EventDispatcher.js.map +1 -0
- package/dist/esm/Service/Logger.js +20 -0
- package/dist/esm/Service/Logger.js.map +1 -0
- package/dist/esm/Service/ServiceResolver.js +33 -0
- package/dist/esm/Service/ServiceResolver.js.map +1 -0
- package/dist/esm/Service/index.js +4 -0
- package/dist/esm/Service/index.js.map +1 -0
- package/dist/esm/Type/Definition/Action.js +2 -0
- package/dist/esm/Type/Definition/Action.js.map +1 -0
- package/dist/esm/Type/Definition/Branded.js +2 -0
- package/dist/esm/Type/Definition/Branded.js.map +1 -0
- package/dist/esm/Type/Definition/Event.js +46 -0
- package/dist/esm/Type/Definition/Event.js.map +1 -0
- package/dist/esm/Type/Definition/EventDispatcher.js +2 -0
- package/dist/esm/Type/Definition/EventDispatcher.js.map +1 -0
- package/dist/esm/Type/Definition/EventIdentifier.js +10 -0
- package/dist/esm/Type/Definition/EventIdentifier.js.map +1 -0
- package/dist/esm/Type/Definition/EventListener.js +2 -0
- package/dist/esm/Type/Definition/EventListener.js.map +1 -0
- package/dist/esm/Type/Definition/EventListenerIdentifier.js +20 -0
- package/dist/esm/Type/Definition/EventListenerIdentifier.js.map +1 -0
- package/dist/esm/Type/Definition/Logger.js +2 -0
- package/dist/esm/Type/Definition/Logger.js.map +1 -0
- package/dist/esm/Type/Definition/OptionalPromise.js +2 -0
- package/dist/esm/Type/Definition/OptionalPromise.js.map +1 -0
- package/dist/esm/Type/Definition/PriorityRegistry.js +63 -0
- package/dist/esm/Type/Definition/PriorityRegistry.js.map +1 -0
- package/dist/esm/Type/Definition/Registry.js +26 -0
- package/dist/esm/Type/Definition/Registry.js.map +1 -0
- package/dist/esm/Type/Definition/ServiceIdentifier.js +10 -0
- package/dist/esm/Type/Definition/ServiceIdentifier.js.map +1 -0
- package/dist/esm/Type/Definition/index.js +13 -0
- package/dist/esm/Type/Definition/index.js.map +1 -0
- package/dist/esm/Type/Enum/EventIdentifier.js +6 -0
- package/dist/esm/Type/Enum/EventIdentifier.js.map +1 -0
- package/dist/esm/Type/Enum/ServiceIdentifier.js +11 -0
- package/dist/esm/Type/Enum/ServiceIdentifier.js.map +1 -0
- package/dist/esm/Type/Enum/index.js +3 -0
- package/dist/esm/Type/Enum/index.js.map +1 -0
- package/dist/esm/Type/Partial/CustomEventDefaultInit.js +7 -0
- package/dist/esm/Type/Partial/CustomEventDefaultInit.js.map +1 -0
- package/dist/esm/Type/Partial/index.js +2 -0
- package/dist/esm/Type/Partial/index.js.map +1 -0
- package/dist/esm/Type/index.js +4 -0
- package/dist/esm/Type/index.js.map +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/dist/types/BrowserEvent/GetServiceResolverEvent.d.ts +12 -0
- package/dist/types/BrowserEvent/index.d.ts +1 -0
- package/dist/types/Error/EmberNexusError.d.ts +7 -0
- package/dist/types/Error/LogicError.d.ts +8 -0
- package/dist/types/Error/ParseError.d.ts +8 -0
- package/dist/types/Error/ValidationError.d.ts +10 -0
- package/dist/types/Error/index.d.ts +4 -0
- package/dist/types/Init.d.ts +4 -0
- package/dist/types/Service/EventDispatcher.d.ts +12 -0
- package/dist/types/Service/Logger.d.ts +11 -0
- package/dist/types/Service/ServiceResolver.d.ts +13 -0
- package/dist/types/Service/index.d.ts +3 -0
- package/dist/types/Type/Definition/Action.d.ts +13 -0
- package/dist/types/Type/Definition/Branded.d.ts +9 -0
- package/dist/types/Type/Definition/Event.d.ts +30 -0
- package/dist/types/Type/Definition/EventDispatcher.d.ts +11 -0
- package/dist/types/Type/Definition/EventIdentifier.d.ts +8 -0
- package/dist/types/Type/Definition/EventListener.d.ts +4 -0
- package/dist/types/Type/Definition/EventListenerIdentifier.d.ts +10 -0
- package/dist/types/Type/Definition/Logger.d.ts +7 -0
- package/dist/types/Type/Definition/OptionalPromise.d.ts +2 -0
- package/dist/types/Type/Definition/PriorityRegistry.d.ts +19 -0
- package/dist/types/Type/Definition/Registry.d.ts +16 -0
- package/dist/types/Type/Definition/ServiceIdentifier.d.ts +8 -0
- package/dist/types/Type/Definition/index.d.ts +12 -0
- package/dist/types/Type/Enum/EventIdentifier.d.ts +4 -0
- package/dist/types/Type/Enum/ServiceIdentifier.d.ts +9 -0
- package/dist/types/Type/Enum/index.d.ts +2 -0
- package/dist/types/Type/Partial/CustomEventDefaultInit.d.ts +2 -0
- package/dist/types/Type/Partial/index.d.ts +1 -0
- package/dist/types/Type/index.d.ts +3 -0
- package/dist/types/index.d.ts +5 -0
- package/package.json +93 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { EventIdentifier } from '../Type/Enum/index.js';
|
|
2
|
+
import { customEventDefaultInit } from '../Type/Partial/index.js';
|
|
3
|
+
class GetServiceResolverEvent extends CustomEvent {
|
|
4
|
+
static type = EventIdentifier.GetServiceResolver;
|
|
5
|
+
constructor() {
|
|
6
|
+
super(GetServiceResolverEvent.type, {
|
|
7
|
+
...customEventDefaultInit,
|
|
8
|
+
detail: {
|
|
9
|
+
serviceResolver: null,
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
getServiceResolver() {
|
|
14
|
+
return this.detail.serviceResolver;
|
|
15
|
+
}
|
|
16
|
+
setServiceResolver(serviceResolver) {
|
|
17
|
+
this.detail.serviceResolver = serviceResolver;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export { GetServiceResolverEvent };
|
|
21
|
+
//# sourceMappingURL=GetServiceResolverEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GetServiceResolverEvent.js","sourceRoot":"","sources":["../../../src/BrowserEvent/GetServiceResolverEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAMlE,MAAM,uBAAwB,SAAQ,WAA2C;IACxE,MAAM,CAAC,IAAI,GAAG,eAAe,CAAC,kBAAkB,CAAC;IACxD;QACE,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE;YAClC,GAAG,sBAAsB;YACzB,MAAM,EAAE;gBACN,eAAe,EAAE,IAAI;aACtB;SACF,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAED,kBAAkB,CAAC,eAAgC;QACjD,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC;IAChD,CAAC;;AAGH,OAAO,EAAE,uBAAuB,EAAkC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/BrowserEvent/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmberNexusError.js","sourceRoot":"","sources":["../../../src/Error/EmberNexusError.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,eAAgB,SAAQ,KAAK;IACjC,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EmberNexusError } from './EmberNexusError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Logic error class.
|
|
4
|
+
*/
|
|
5
|
+
class LogicError extends EmberNexusError {
|
|
6
|
+
constructor(message) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = 'LogicError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export { LogicError };
|
|
12
|
+
//# sourceMappingURL=LogicError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogicError.js","sourceRoot":"","sources":["../../../src/Error/LogicError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAW,SAAQ,eAAe;IACtC,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EmberNexusError } from './EmberNexusError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parse error class.
|
|
4
|
+
*/
|
|
5
|
+
class ParseError extends EmberNexusError {
|
|
6
|
+
constructor(message) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = 'ParseError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export { ParseError };
|
|
12
|
+
//# sourceMappingURL=ParseError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParseError.js","sourceRoot":"","sources":["../../../src/Error/ParseError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAW,SAAQ,eAAe;IACtC,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EmberNexusError } from './EmberNexusError.js';
|
|
2
|
+
/**
|
|
3
|
+
* Validation error class.
|
|
4
|
+
*
|
|
5
|
+
* Validation errors are thrown when data is parseable but does not match a context dependent data scheme.
|
|
6
|
+
*/
|
|
7
|
+
class ValidationError extends EmberNexusError {
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = 'ValidationError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export { ValidationError };
|
|
14
|
+
//# sourceMappingURL=ValidationError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValidationError.js","sourceRoot":"","sources":["../../../src/Error/ValidationError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,eAAgB,SAAQ,eAAe;IAC3C,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Error/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
|
package/dist/esm/Init.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { EmberNexus } from '@ember-nexus/web-sdk/Service';
|
|
2
|
+
import { Logger } from 'tslog';
|
|
3
|
+
import { EventDispatcher, ServiceResolver } from './Service/index.js';
|
|
4
|
+
import { PriorityRegistry, Registry, validateServiceIdentifierFromString } from './Type/Definition/index.js';
|
|
5
|
+
import { EventIdentifier, ServiceIdentifier } from './Type/Enum/index.js';
|
|
6
|
+
function init(rootNode, emberNexus = null) {
|
|
7
|
+
const serviceResolver = new ServiceResolver();
|
|
8
|
+
rootNode.addEventListener(EventIdentifier.GetServiceResolver, (event) => {
|
|
9
|
+
event.setServiceResolver(serviceResolver);
|
|
10
|
+
event.stopPropagation();
|
|
11
|
+
});
|
|
12
|
+
if (emberNexus === null) {
|
|
13
|
+
emberNexus = new EmberNexus();
|
|
14
|
+
}
|
|
15
|
+
serviceResolver.setService(validateServiceIdentifierFromString(ServiceIdentifier.emberNexusWebSDK), emberNexus);
|
|
16
|
+
serviceResolver.setService(validateServiceIdentifierFromString(ServiceIdentifier.action), new PriorityRegistry());
|
|
17
|
+
serviceResolver.setService(validateServiceIdentifierFromString(ServiceIdentifier.setting), new Registry());
|
|
18
|
+
serviceResolver.setService(validateServiceIdentifierFromString(ServiceIdentifier.icon), new Registry());
|
|
19
|
+
const logger = new Logger({
|
|
20
|
+
name: 'app-core',
|
|
21
|
+
type: 'pretty',
|
|
22
|
+
});
|
|
23
|
+
serviceResolver.setService(validateServiceIdentifierFromString(ServiceIdentifier.logger), logger);
|
|
24
|
+
const eventDispatcher = new EventDispatcher(logger);
|
|
25
|
+
serviceResolver.setService(validateServiceIdentifierFromString(ServiceIdentifier.eventDispatcher), eventDispatcher);
|
|
26
|
+
return serviceResolver;
|
|
27
|
+
}
|
|
28
|
+
export { init };
|
|
29
|
+
//# sourceMappingURL=Init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Init.js","sourceRoot":"","sources":["../../src/Init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,SAAS,IAAI,CAAC,QAAqB,EAAE,aAAgC,IAAI;IACvE,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAE9C,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,KAA8B,EAAE,EAAE;QAC/F,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAC1C,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,CAAC;IACD,eAAe,CAAC,UAAU,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC,CAAC;IAEhH,eAAe,CAAC,UAAU,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAElH,eAAe,CAAC,UAAU,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC;IAE3G,eAAe,CAAC,UAAU,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC;IAExG,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IACH,eAAe,CAAC,UAAU,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAElG,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IACpD,eAAe,CAAC,UAAU,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC;IAEpH,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { getEventListenerIdentifiersFromEventIdentifier, } from '../Type/Definition/index.js';
|
|
2
|
+
class EventDispatcher {
|
|
3
|
+
entries = new Map();
|
|
4
|
+
logger;
|
|
5
|
+
constructor(logger) {
|
|
6
|
+
this.logger = logger;
|
|
7
|
+
}
|
|
8
|
+
async dispatchEvent(event) {
|
|
9
|
+
this.logger.debug(`Dispatching event of identifier ${event.getIdentifier()}.`, { event: event });
|
|
10
|
+
if (event.isPropagationStopped()) {
|
|
11
|
+
this.logger.debug(`Stopped event propagation because it is already stopped.`, { event: event });
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
const eventListenerIdentifiersToNotify = getEventListenerIdentifiersFromEventIdentifier(event.getIdentifier());
|
|
15
|
+
for (let i = 0; i < eventListenerIdentifiersToNotify.length; ++i) {
|
|
16
|
+
const eventListenerIdentifier = eventListenerIdentifiersToNotify[i];
|
|
17
|
+
const eventListeners = this.entries.get(eventListenerIdentifier);
|
|
18
|
+
if (eventListeners === undefined) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
this.logger.debug(`Iterating over resolved event listeners of identifier ${eventListenerIdentifier}`, {
|
|
22
|
+
event: event,
|
|
23
|
+
});
|
|
24
|
+
for (let j = eventListeners.length - 1; j >= 0; j--) {
|
|
25
|
+
try {
|
|
26
|
+
await Promise.resolve(eventListeners[j].eventListener(event));
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
this.logger.error(`Event handler threw exception, dispatcher continues with next event listener.`, {
|
|
30
|
+
event: event,
|
|
31
|
+
error: e,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
if (event.isPropagationStopped()) {
|
|
35
|
+
this.logger.debug(`Stopped event propagation as it got stopped.`, { event: event });
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
this.logger.debug(`Event got handled by all event listeners.`, { event: event });
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
addListener(eventListenerIdentifier, eventListener, priority) {
|
|
44
|
+
if (priority === undefined) {
|
|
45
|
+
priority = 0;
|
|
46
|
+
}
|
|
47
|
+
let eventListenersList;
|
|
48
|
+
if (!this.entries.has(eventListenerIdentifier)) {
|
|
49
|
+
eventListenersList = [];
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
eventListenersList = this.entries.get(eventListenerIdentifier);
|
|
53
|
+
}
|
|
54
|
+
// find correct index in list to add entry to
|
|
55
|
+
let left = 0;
|
|
56
|
+
let right = eventListenersList.length - 1;
|
|
57
|
+
let result = -1;
|
|
58
|
+
while (left <= right) {
|
|
59
|
+
const mid = Math.floor((left + right) / 2);
|
|
60
|
+
if (eventListenersList[mid].priority >= priority) {
|
|
61
|
+
result = mid; // Found a candidate, but keep searching in the left half
|
|
62
|
+
right = mid - 1;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
left = mid + 1; // Search in the right half
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const insertAt = result === -1 ? left : result;
|
|
69
|
+
eventListenersList.splice(insertAt, 0, { priority: priority, eventListener: eventListener });
|
|
70
|
+
this.entries.set(eventListenerIdentifier, eventListenersList);
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
removeListener(eventListenerIdentifier, eventListener) {
|
|
74
|
+
const eventListenersList = this.entries.get(eventListenerIdentifier);
|
|
75
|
+
if (!eventListenersList) {
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
for (let i = 0; i < eventListenersList.length; ++i) {
|
|
79
|
+
if (eventListenersList[i].eventListener === eventListener) {
|
|
80
|
+
eventListenersList.splice(i, 1);
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (eventListenersList.length === 0) {
|
|
85
|
+
this.entries.delete(eventListenerIdentifier);
|
|
86
|
+
}
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
getListeners(eventListenerIdentifier) {
|
|
90
|
+
const entries = this.entries.get(eventListenerIdentifier);
|
|
91
|
+
return entries ? entries.map((entry) => entry.eventListener) : [];
|
|
92
|
+
}
|
|
93
|
+
hasListeners(eventListenerIdentifier) {
|
|
94
|
+
return this.entries.has(eventListenerIdentifier);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
export { EventDispatcher };
|
|
98
|
+
//# sourceMappingURL=EventDispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventDispatcher.js","sourceRoot":"","sources":["../../../src/Service/EventDispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
class Logger {
|
|
2
|
+
logger;
|
|
3
|
+
constructor(logger) {
|
|
4
|
+
this.logger = logger;
|
|
5
|
+
}
|
|
6
|
+
debug(...args) {
|
|
7
|
+
return this.logger.debug(args);
|
|
8
|
+
}
|
|
9
|
+
error(...args) {
|
|
10
|
+
return this.logger.error(args);
|
|
11
|
+
}
|
|
12
|
+
info(...args) {
|
|
13
|
+
return this.logger.info(args);
|
|
14
|
+
}
|
|
15
|
+
warn(...args) {
|
|
16
|
+
return this.logger.warn(args);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export { Logger };
|
|
20
|
+
//# sourceMappingURL=Logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../src/Service/Logger.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM;IACF,MAAM,CAAoB;IAClC,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,GAAG,IAAe;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,GAAG,IAAe;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,GAAG,IAAe;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,GAAG,IAAe;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
class ServiceResolver {
|
|
2
|
+
services = new Map();
|
|
3
|
+
constructor() { }
|
|
4
|
+
hasService(serviceIdentifier) {
|
|
5
|
+
return this.services.has(serviceIdentifier);
|
|
6
|
+
}
|
|
7
|
+
getService(serviceIdentifier) {
|
|
8
|
+
if (!this.hasService(serviceIdentifier)) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return this.services.get(serviceIdentifier);
|
|
12
|
+
}
|
|
13
|
+
setService(serviceIdentifier, service) {
|
|
14
|
+
this.services.set(serviceIdentifier, service);
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
deleteService(serviceIdentifier) {
|
|
18
|
+
this.services.delete(serviceIdentifier);
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
getServiceIdentifiers() {
|
|
22
|
+
return [...this.services.keys()];
|
|
23
|
+
}
|
|
24
|
+
getServices() {
|
|
25
|
+
return [...this.services.values()];
|
|
26
|
+
}
|
|
27
|
+
clearServices() {
|
|
28
|
+
this.services.clear();
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export { ServiceResolver };
|
|
33
|
+
//# sourceMappingURL=ServiceResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceResolver.js","sourceRoot":"","sources":["../../../src/Service/ServiceResolver.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe;IACF,QAAQ,GAAoC,IAAI,GAAG,EAAE,CAAC;IAEvE,gBAAe,CAAC;IAEhB,UAAU,CAAC,iBAAoC;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU,CAAC,iBAAoC;QAC7C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU,CAAC,iBAAoC,EAAE,OAAgB;QAC/D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,iBAAoC;QAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Service/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Action.js","sourceRoot":"","sources":["../../../../src/Type/Definition/Action.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Branded.js","sourceRoot":"","sources":["../../../../src/Type/Definition/Branded.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
class Event {
|
|
2
|
+
identifier;
|
|
3
|
+
stopped = false;
|
|
4
|
+
context;
|
|
5
|
+
constructor(identifier, context = {}) {
|
|
6
|
+
this.identifier = identifier;
|
|
7
|
+
this.context = context;
|
|
8
|
+
}
|
|
9
|
+
getIdentifier() {
|
|
10
|
+
return this.identifier;
|
|
11
|
+
}
|
|
12
|
+
isPropagationStopped() {
|
|
13
|
+
return this.stopped;
|
|
14
|
+
}
|
|
15
|
+
stopPropagation() {
|
|
16
|
+
this.stopped = true;
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
getContextValue(key) {
|
|
20
|
+
return this.context[key];
|
|
21
|
+
}
|
|
22
|
+
setContextValue(key, value) {
|
|
23
|
+
this.context[key] = value;
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
hasContextValue(key) {
|
|
27
|
+
return Object.prototype.hasOwnProperty.call(this.context, key);
|
|
28
|
+
}
|
|
29
|
+
clearContextValue(key) {
|
|
30
|
+
delete this.context[key];
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
getContext() {
|
|
34
|
+
return { ...this.context };
|
|
35
|
+
}
|
|
36
|
+
setContext(context) {
|
|
37
|
+
this.context = context;
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
clearContext() {
|
|
41
|
+
this.context = {};
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export { Event };
|
|
46
|
+
//# sourceMappingURL=Event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Event.js","sourceRoot":"","sources":["../../../../src/Type/Definition/Event.ts"],"names":[],"mappings":"AAiBA,MAAM,KAAK;IACQ,UAAU,CAAkB;IACrC,OAAO,GAAY,KAAK,CAAC;IACzB,OAAO,CAA0B;IAEzC,YAAY,UAA2B,EAAE,UAAmC,EAAE;QAC5E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,eAAe;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,eAAe,CAAC,GAAW,EAAE,KAAc;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,iBAAiB,CAAC,GAAW;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,OAAgC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,OAAO,EAAkB,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventDispatcher.js","sourceRoot":"","sources":["../../../../src/Type/Definition/EventDispatcher.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ParseError } from '../../Error/index.js';
|
|
2
|
+
const eventIdentifierRegex = /^([a-z][a-z0-9-]*)(\.([a-z][a-z0-9-]*))*$/;
|
|
3
|
+
function validateEventIdentifierFromString(eventIdentifier) {
|
|
4
|
+
if (!eventIdentifierRegex.test(eventIdentifier)) {
|
|
5
|
+
throw new ParseError('Passed variable is not a valid event identifier.');
|
|
6
|
+
}
|
|
7
|
+
return eventIdentifier;
|
|
8
|
+
}
|
|
9
|
+
export { validateEventIdentifierFromString, eventIdentifierRegex };
|
|
10
|
+
//# sourceMappingURL=EventIdentifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventIdentifier.js","sourceRoot":"","sources":["../../../../src/Type/Definition/EventIdentifier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOlD,MAAM,oBAAoB,GAAG,2CAA2C,CAAC;AAEzE,SAAS,iCAAiC,CAAC,eAAuB;IAChE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,UAAU,CAAC,kDAAkD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,eAAkC,CAAC;AAC5C,CAAC;AAED,OAAO,EAAmB,iCAAiC,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventListener.js","sourceRoot":"","sources":["../../../../src/Type/Definition/EventListener.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ParseError } from '../../Error/index.js';
|
|
2
|
+
const eventListenerIdentifierRegex = /^(?:([a-z][a-z0-9-]*)(\.([a-z][a-z0-9-]*))*|\*|([a-z][a-z0-9-]*)(\.([a-z][a-z0-9-]*))*(\.\*))$/;
|
|
3
|
+
function validateEventListenerIdentifierFromString(eventListenerIdentifier) {
|
|
4
|
+
if (!eventListenerIdentifierRegex.test(eventListenerIdentifier)) {
|
|
5
|
+
throw new ParseError('Passed variable is not a valid event listener identifier.');
|
|
6
|
+
}
|
|
7
|
+
return eventListenerIdentifier;
|
|
8
|
+
}
|
|
9
|
+
function getEventListenerIdentifiersFromEventIdentifier(eventIdentifier) {
|
|
10
|
+
const parts = eventIdentifier.split('.');
|
|
11
|
+
const eventListenerIdentifiers = [];
|
|
12
|
+
eventListenerIdentifiers.push(validateEventListenerIdentifierFromString(eventIdentifier));
|
|
13
|
+
for (let i = parts.length - 1; i > 0; i--) {
|
|
14
|
+
eventListenerIdentifiers.push(validateEventListenerIdentifierFromString(parts.slice(0, i).join('.') + '.*'));
|
|
15
|
+
}
|
|
16
|
+
eventListenerIdentifiers.push(validateEventListenerIdentifierFromString('*'));
|
|
17
|
+
return eventListenerIdentifiers;
|
|
18
|
+
}
|
|
19
|
+
export { validateEventListenerIdentifierFromString, eventListenerIdentifierRegex, getEventListenerIdentifiersFromEventIdentifier, };
|
|
20
|
+
//# sourceMappingURL=EventListenerIdentifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventListenerIdentifier.js","sourceRoot":"","sources":["../../../../src/Type/Definition/EventListenerIdentifier.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOlD,MAAM,4BAA4B,GAChC,gGAAgG,CAAC;AAEnG,SAAS,yCAAyC,CAAC,uBAA+B;IAChF,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,UAAU,CAAC,2DAA2D,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,uBAAkD,CAAC;AAC5D,CAAC;AAED,SAAS,8CAA8C,CAAC,eAAgC;IACtF,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,wBAAwB,GAA8B,EAAE,CAAC;IAC/D,wBAAwB,CAAC,IAAI,CAAC,yCAAyC,CAAC,eAAe,CAAC,CAAC,CAAC;IAC1F,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,wBAAwB,CAAC,IAAI,CAAC,yCAAyC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/G,CAAC;IACD,wBAAwB,CAAC,IAAI,CAAC,yCAAyC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED,OAAO,EAEL,yCAAyC,EACzC,4BAA4B,EAC5B,8CAA8C,GAC/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../../src/Type/Definition/Logger.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionalPromise.js","sourceRoot":"","sources":["../../../../src/Type/Definition/OptionalPromise.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
class PriorityRegistry {
|
|
2
|
+
entries = new Map();
|
|
3
|
+
clearEntries() {
|
|
4
|
+
this.entries.clear();
|
|
5
|
+
return this;
|
|
6
|
+
}
|
|
7
|
+
deleteEntry(key) {
|
|
8
|
+
this.entries.delete(key);
|
|
9
|
+
return this;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Returns the entry with the highest priority.
|
|
13
|
+
* If multiple entries have the same priority, the one which was added first gets returned.
|
|
14
|
+
*/
|
|
15
|
+
getEntry(key) {
|
|
16
|
+
if (!this.hasEntry(key)) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
const priorityRegistryEntries = this.entries.get(key);
|
|
20
|
+
return priorityRegistryEntries[priorityRegistryEntries.length - 1].entry;
|
|
21
|
+
}
|
|
22
|
+
hasEntry(key) {
|
|
23
|
+
return this.entries.has(key);
|
|
24
|
+
}
|
|
25
|
+
setEntry(key, entry, priority) {
|
|
26
|
+
if (priority === undefined) {
|
|
27
|
+
priority = 0;
|
|
28
|
+
}
|
|
29
|
+
let entryList;
|
|
30
|
+
if (!this.entries.has(key)) {
|
|
31
|
+
entryList = [];
|
|
32
|
+
this.entries.set(key, entryList);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
entryList = this.entries.get(key);
|
|
36
|
+
}
|
|
37
|
+
// find correct index in list to add entry to
|
|
38
|
+
let left = 0;
|
|
39
|
+
let right = entryList.length - 1;
|
|
40
|
+
let result = -1;
|
|
41
|
+
while (left <= right) {
|
|
42
|
+
const mid = Math.floor((left + right) / 2);
|
|
43
|
+
if (entryList[mid].priority >= priority) {
|
|
44
|
+
result = mid; // Found a candidate, but keep searching in the left half
|
|
45
|
+
right = mid - 1;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
left = mid + 1; // Search in the right half
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const insertAt = result === -1 ? left : result;
|
|
52
|
+
entryList.splice(insertAt, 0, { priority: priority, entry: entry });
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
getAllEntriesForKey(key) {
|
|
56
|
+
if (!this.entries.has(key)) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
return this.entries.get(key).map((priorityRegistryEntry) => priorityRegistryEntry.entry);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export { PriorityRegistry };
|
|
63
|
+
//# sourceMappingURL=PriorityRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PriorityRegistry.js","sourceRoot":"","sources":["../../../../src/Type/Definition/PriorityRegistry.ts"],"names":[],"mappings":"AAYA,MAAM,gBAAgB;IACH,OAAO,GAA4C,IAAI,GAAG,EAAE,CAAC;IAE9E,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,GAAW;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,uBAAuB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QACvD,OAAO,uBAAuB,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3E,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,KAAQ,EAAE,QAAiB;QAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,GAAG,CAAC,CAAC;QACf,CAAC;QAED,IAAI,SAAqC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,SAAS,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QACrC,CAAC;QAED,6CAA6C;QAC7C,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;QAEhB,OAAO,IAAI,IAAI,KAAK,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAE3C,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,CAAC,CAAC,yDAAyD;gBACvE,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,2BAA2B;YAC7C,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAE/C,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,GAAW;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,CAAC,qBAAqB,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC5F,CAAC;CACF;AAED,OAAO,EAA6B,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
class Registry {
|
|
2
|
+
entries = new Map();
|
|
3
|
+
clearEntries() {
|
|
4
|
+
this.entries.clear();
|
|
5
|
+
return this;
|
|
6
|
+
}
|
|
7
|
+
deleteEntry(key) {
|
|
8
|
+
this.entries.delete(key);
|
|
9
|
+
return this;
|
|
10
|
+
}
|
|
11
|
+
getEntry(key) {
|
|
12
|
+
if (!this.hasEntry(key)) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
return this.entries.get(key);
|
|
16
|
+
}
|
|
17
|
+
hasEntry(key) {
|
|
18
|
+
return this.entries.has(key);
|
|
19
|
+
}
|
|
20
|
+
setEntry(key, entry) {
|
|
21
|
+
this.entries.set(key, entry);
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export { Registry };
|
|
26
|
+
//# sourceMappingURL=Registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Registry.js","sourceRoot":"","sources":["../../../../src/Type/Definition/Registry.ts"],"names":[],"mappings":"AAQA,MAAM,QAAQ;IACK,OAAO,GAAmB,IAAI,GAAG,EAAE,CAAC;IAErD,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;IACpC,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,KAAQ;QAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,OAAO,EAAqB,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ParseError } from '../../Error/index.js';
|
|
2
|
+
const serviceIdentifierRegex = /^([a-z][a-z0-9-]*)(\.([a-z][a-z0-9-]*))*$/;
|
|
3
|
+
function validateServiceIdentifierFromString(serviceIdentifier) {
|
|
4
|
+
if (!serviceIdentifierRegex.test(serviceIdentifier)) {
|
|
5
|
+
throw new ParseError('Passed variable is not a valid service identifier.');
|
|
6
|
+
}
|
|
7
|
+
return serviceIdentifier;
|
|
8
|
+
}
|
|
9
|
+
export { validateServiceIdentifierFromString, serviceIdentifierRegex };
|
|
10
|
+
//# sourceMappingURL=ServiceIdentifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceIdentifier.js","sourceRoot":"","sources":["../../../../src/Type/Definition/ServiceIdentifier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOlD,MAAM,sBAAsB,GAAG,2CAA2C,CAAC;AAE3E,SAAS,mCAAmC,CAAC,iBAAyB;IACpE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,UAAU,CAAC,oDAAoD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,iBAAsC,CAAC;AAChD,CAAC;AAED,OAAO,EAAqB,mCAAmC,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from './Action.js';
|
|
2
|
+
export * from './Branded.js';
|
|
3
|
+
export * from './Event.js';
|
|
4
|
+
export * from './EventDispatcher.js';
|
|
5
|
+
export * from './EventIdentifier.js';
|
|
6
|
+
export * from './EventListener.js';
|
|
7
|
+
export * from './EventListenerIdentifier.js';
|
|
8
|
+
export * from './Logger.js';
|
|
9
|
+
export * from './OptionalPromise.js';
|
|
10
|
+
export * from './PriorityRegistry.js';
|
|
11
|
+
export * from './Registry.js';
|
|
12
|
+
export * from './ServiceIdentifier.js';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Type/Definition/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventIdentifier.js","sourceRoot":"","sources":["../../../../src/Type/Enum/EventIdentifier.ts"],"names":[],"mappings":"AAAA,IAAK,eAEJ;AAFD,WAAK,eAAe;IAClB,mFAAgE,CAAA;AAClE,CAAC,EAFI,eAAe,KAAf,eAAe,QAEnB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
|