@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.
Files changed (103) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +21 -0
  3. package/README.md +15 -0
  4. package/dist/browser/index.js +2 -0
  5. package/dist/browser/index.js.map +1 -0
  6. package/dist/esm/BrowserEvent/GetServiceResolverEvent.js +21 -0
  7. package/dist/esm/BrowserEvent/GetServiceResolverEvent.js.map +1 -0
  8. package/dist/esm/BrowserEvent/index.js +2 -0
  9. package/dist/esm/BrowserEvent/index.js.map +1 -0
  10. package/dist/esm/Error/EmberNexusError.js +10 -0
  11. package/dist/esm/Error/EmberNexusError.js.map +1 -0
  12. package/dist/esm/Error/LogicError.js +12 -0
  13. package/dist/esm/Error/LogicError.js.map +1 -0
  14. package/dist/esm/Error/ParseError.js +12 -0
  15. package/dist/esm/Error/ParseError.js.map +1 -0
  16. package/dist/esm/Error/ValidationError.js +14 -0
  17. package/dist/esm/Error/ValidationError.js.map +1 -0
  18. package/dist/esm/Error/index.js +5 -0
  19. package/dist/esm/Error/index.js.map +1 -0
  20. package/dist/esm/Init.js +29 -0
  21. package/dist/esm/Init.js.map +1 -0
  22. package/dist/esm/Service/EventDispatcher.js +98 -0
  23. package/dist/esm/Service/EventDispatcher.js.map +1 -0
  24. package/dist/esm/Service/Logger.js +20 -0
  25. package/dist/esm/Service/Logger.js.map +1 -0
  26. package/dist/esm/Service/ServiceResolver.js +33 -0
  27. package/dist/esm/Service/ServiceResolver.js.map +1 -0
  28. package/dist/esm/Service/index.js +4 -0
  29. package/dist/esm/Service/index.js.map +1 -0
  30. package/dist/esm/Type/Definition/Action.js +2 -0
  31. package/dist/esm/Type/Definition/Action.js.map +1 -0
  32. package/dist/esm/Type/Definition/Branded.js +2 -0
  33. package/dist/esm/Type/Definition/Branded.js.map +1 -0
  34. package/dist/esm/Type/Definition/Event.js +46 -0
  35. package/dist/esm/Type/Definition/Event.js.map +1 -0
  36. package/dist/esm/Type/Definition/EventDispatcher.js +2 -0
  37. package/dist/esm/Type/Definition/EventDispatcher.js.map +1 -0
  38. package/dist/esm/Type/Definition/EventIdentifier.js +10 -0
  39. package/dist/esm/Type/Definition/EventIdentifier.js.map +1 -0
  40. package/dist/esm/Type/Definition/EventListener.js +2 -0
  41. package/dist/esm/Type/Definition/EventListener.js.map +1 -0
  42. package/dist/esm/Type/Definition/EventListenerIdentifier.js +20 -0
  43. package/dist/esm/Type/Definition/EventListenerIdentifier.js.map +1 -0
  44. package/dist/esm/Type/Definition/Logger.js +2 -0
  45. package/dist/esm/Type/Definition/Logger.js.map +1 -0
  46. package/dist/esm/Type/Definition/OptionalPromise.js +2 -0
  47. package/dist/esm/Type/Definition/OptionalPromise.js.map +1 -0
  48. package/dist/esm/Type/Definition/PriorityRegistry.js +63 -0
  49. package/dist/esm/Type/Definition/PriorityRegistry.js.map +1 -0
  50. package/dist/esm/Type/Definition/Registry.js +26 -0
  51. package/dist/esm/Type/Definition/Registry.js.map +1 -0
  52. package/dist/esm/Type/Definition/ServiceIdentifier.js +10 -0
  53. package/dist/esm/Type/Definition/ServiceIdentifier.js.map +1 -0
  54. package/dist/esm/Type/Definition/index.js +13 -0
  55. package/dist/esm/Type/Definition/index.js.map +1 -0
  56. package/dist/esm/Type/Enum/EventIdentifier.js +6 -0
  57. package/dist/esm/Type/Enum/EventIdentifier.js.map +1 -0
  58. package/dist/esm/Type/Enum/ServiceIdentifier.js +11 -0
  59. package/dist/esm/Type/Enum/ServiceIdentifier.js.map +1 -0
  60. package/dist/esm/Type/Enum/index.js +3 -0
  61. package/dist/esm/Type/Enum/index.js.map +1 -0
  62. package/dist/esm/Type/Partial/CustomEventDefaultInit.js +7 -0
  63. package/dist/esm/Type/Partial/CustomEventDefaultInit.js.map +1 -0
  64. package/dist/esm/Type/Partial/index.js +2 -0
  65. package/dist/esm/Type/Partial/index.js.map +1 -0
  66. package/dist/esm/Type/index.js +4 -0
  67. package/dist/esm/Type/index.js.map +1 -0
  68. package/dist/esm/index.js +6 -0
  69. package/dist/esm/index.js.map +1 -0
  70. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  71. package/dist/types/BrowserEvent/GetServiceResolverEvent.d.ts +12 -0
  72. package/dist/types/BrowserEvent/index.d.ts +1 -0
  73. package/dist/types/Error/EmberNexusError.d.ts +7 -0
  74. package/dist/types/Error/LogicError.d.ts +8 -0
  75. package/dist/types/Error/ParseError.d.ts +8 -0
  76. package/dist/types/Error/ValidationError.d.ts +10 -0
  77. package/dist/types/Error/index.d.ts +4 -0
  78. package/dist/types/Init.d.ts +4 -0
  79. package/dist/types/Service/EventDispatcher.d.ts +12 -0
  80. package/dist/types/Service/Logger.d.ts +11 -0
  81. package/dist/types/Service/ServiceResolver.d.ts +13 -0
  82. package/dist/types/Service/index.d.ts +3 -0
  83. package/dist/types/Type/Definition/Action.d.ts +13 -0
  84. package/dist/types/Type/Definition/Branded.d.ts +9 -0
  85. package/dist/types/Type/Definition/Event.d.ts +30 -0
  86. package/dist/types/Type/Definition/EventDispatcher.d.ts +11 -0
  87. package/dist/types/Type/Definition/EventIdentifier.d.ts +8 -0
  88. package/dist/types/Type/Definition/EventListener.d.ts +4 -0
  89. package/dist/types/Type/Definition/EventListenerIdentifier.d.ts +10 -0
  90. package/dist/types/Type/Definition/Logger.d.ts +7 -0
  91. package/dist/types/Type/Definition/OptionalPromise.d.ts +2 -0
  92. package/dist/types/Type/Definition/PriorityRegistry.d.ts +19 -0
  93. package/dist/types/Type/Definition/Registry.d.ts +16 -0
  94. package/dist/types/Type/Definition/ServiceIdentifier.d.ts +8 -0
  95. package/dist/types/Type/Definition/index.d.ts +12 -0
  96. package/dist/types/Type/Enum/EventIdentifier.d.ts +4 -0
  97. package/dist/types/Type/Enum/ServiceIdentifier.d.ts +9 -0
  98. package/dist/types/Type/Enum/index.d.ts +2 -0
  99. package/dist/types/Type/Partial/CustomEventDefaultInit.d.ts +2 -0
  100. package/dist/types/Type/Partial/index.d.ts +1 -0
  101. package/dist/types/Type/index.d.ts +3 -0
  102. package/dist/types/index.d.ts +5 -0
  103. package/package.json +93 -0
@@ -0,0 +1,11 @@
1
+ var ServiceIdentifier;
2
+ (function (ServiceIdentifier) {
3
+ ServiceIdentifier["emberNexusWebSDK"] = "ember-nexus.web-sdk";
4
+ ServiceIdentifier["eventDispatcher"] = "global.event-dispatcher";
5
+ ServiceIdentifier["logger"] = "global.logger";
6
+ ServiceIdentifier["action"] = "global.action-registry";
7
+ ServiceIdentifier["setting"] = "global.setting-registry";
8
+ ServiceIdentifier["icon"] = "global.icon-registry";
9
+ })(ServiceIdentifier || (ServiceIdentifier = {}));
10
+ export { ServiceIdentifier };
11
+ //# sourceMappingURL=ServiceIdentifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceIdentifier.js","sourceRoot":"","sources":["../../../../src/Type/Enum/ServiceIdentifier.ts"],"names":[],"mappings":"AAAA,IAAK,iBAOJ;AAPD,WAAK,iBAAiB;IACpB,6DAAwC,CAAA;IACxC,gEAA2C,CAAA;IAC3C,6CAAwB,CAAA;IACxB,sDAAiC,CAAA;IACjC,wDAAmC,CAAA;IACnC,kDAA6B,CAAA;AAC/B,CAAC,EAPI,iBAAiB,KAAjB,iBAAiB,QAOrB;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './EventIdentifier.js';
2
+ export * from './ServiceIdentifier.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Type/Enum/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,7 @@
1
+ const customEventDefaultInit = {
2
+ bubbles: true,
3
+ composed: true,
4
+ cancelable: true,
5
+ };
6
+ export { customEventDefaultInit };
7
+ //# sourceMappingURL=CustomEventDefaultInit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomEventDefaultInit.js","sourceRoot":"","sources":["../../../../src/Type/Partial/CustomEventDefaultInit.ts"],"names":[],"mappings":"AAAA,MAAM,sBAAsB,GAAc;IACxC,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './CustomEventDefaultInit.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Type/Partial/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * as Definition from './Definition/index.js';
2
+ export * as Enum from './Enum/index.js';
3
+ export * as Partial from './Partial/index.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Type/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * as BrowserEvent from './BrowserEvent/index.js';
2
+ export * as Error from './Error/index.js';
3
+ export * as Service from './Service/index.js';
4
+ export * as Type from './Type/index.js';
5
+ export * from './Init.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,cAAc,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ {"root":["../../src/Init.ts","../../src/index.ts","../../src/BrowserEvent/GetServiceResolverEvent.ts","../../src/BrowserEvent/index.ts","../../src/Error/EmberNexusError.ts","../../src/Error/LogicError.ts","../../src/Error/ParseError.ts","../../src/Error/ValidationError.ts","../../src/Error/index.ts","../../src/Service/EventDispatcher.ts","../../src/Service/Logger.ts","../../src/Service/ServiceResolver.ts","../../src/Service/index.ts","../../src/Type/index.ts","../../src/Type/Definition/Action.ts","../../src/Type/Definition/Branded.ts","../../src/Type/Definition/Event.ts","../../src/Type/Definition/EventDispatcher.ts","../../src/Type/Definition/EventIdentifier.ts","../../src/Type/Definition/EventListener.ts","../../src/Type/Definition/EventListenerIdentifier.ts","../../src/Type/Definition/Logger.ts","../../src/Type/Definition/OptionalPromise.ts","../../src/Type/Definition/PriorityRegistry.ts","../../src/Type/Definition/Registry.ts","../../src/Type/Definition/ServiceIdentifier.ts","../../src/Type/Definition/index.ts","../../src/Type/Enum/EventIdentifier.ts","../../src/Type/Enum/ServiceIdentifier.ts","../../src/Type/Enum/index.ts","../../src/Type/Partial/CustomEventDefaultInit.ts","../../src/Type/Partial/index.ts"],"version":"5.8.3"}
@@ -0,0 +1,12 @@
1
+ import { ServiceResolver } from '../Service/index.js';
2
+ import { EventIdentifier } from '../Type/Enum/index.js';
3
+ type GetServiceResolverEventDetails = {
4
+ serviceResolver: ServiceResolver | null;
5
+ };
6
+ declare class GetServiceResolverEvent extends CustomEvent<GetServiceResolverEventDetails> {
7
+ static type: EventIdentifier;
8
+ constructor();
9
+ getServiceResolver(): ServiceResolver | null;
10
+ setServiceResolver(serviceResolver: ServiceResolver): void;
11
+ }
12
+ export { GetServiceResolverEvent, GetServiceResolverEventDetails };
@@ -0,0 +1 @@
1
+ export * from './GetServiceResolverEvent.js';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Base class for errors generated by the Web SDK.
3
+ */
4
+ declare class EmberNexusError extends Error {
5
+ constructor(message?: string);
6
+ }
7
+ export { EmberNexusError };
@@ -0,0 +1,8 @@
1
+ import { EmberNexusError } from './EmberNexusError.js';
2
+ /**
3
+ * Logic error class.
4
+ */
5
+ declare class LogicError extends EmberNexusError {
6
+ constructor(message?: string);
7
+ }
8
+ export { LogicError };
@@ -0,0 +1,8 @@
1
+ import { EmberNexusError } from './EmberNexusError.js';
2
+ /**
3
+ * Parse error class.
4
+ */
5
+ declare class ParseError extends EmberNexusError {
6
+ constructor(message?: string);
7
+ }
8
+ export { ParseError };
@@ -0,0 +1,10 @@
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
+ declare class ValidationError extends EmberNexusError {
8
+ constructor(message?: string);
9
+ }
10
+ export { ValidationError };
@@ -0,0 +1,4 @@
1
+ export * from './EmberNexusError.js';
2
+ export * from './LogicError.js';
3
+ export * from './ParseError.js';
4
+ export * from './ValidationError.js';
@@ -0,0 +1,4 @@
1
+ import { EmberNexus } from '@ember-nexus/web-sdk/Service';
2
+ import { ServiceResolver } from './Service/index.js';
3
+ declare function init(rootNode: HTMLElement, emberNexus?: EmberNexus | null): ServiceResolver;
4
+ export { init };
@@ -0,0 +1,12 @@
1
+ import { EventDispatcherInterface, EventInterface, EventListener, EventListenerIdentifier, LoggerInterface } from '../Type/Definition/index.js';
2
+ declare class EventDispatcher implements EventDispatcherInterface {
3
+ private readonly entries;
4
+ private logger;
5
+ constructor(logger: LoggerInterface);
6
+ dispatchEvent(event: EventInterface): Promise<void>;
7
+ addListener(eventListenerIdentifier: EventListenerIdentifier, eventListener: EventListener, priority?: number): this;
8
+ removeListener(eventListenerIdentifier: EventListenerIdentifier, eventListener: EventListener): this;
9
+ getListeners(eventListenerIdentifier: EventListenerIdentifier): EventListener[];
10
+ hasListeners(eventListenerIdentifier: EventListenerIdentifier): boolean;
11
+ }
12
+ export { EventDispatcher };
@@ -0,0 +1,11 @@
1
+ import { ILogObj, Logger as TsLogger } from 'tslog';
2
+ import { LoggerInterface } from '../Type/Definition/index.js';
3
+ declare class Logger implements LoggerInterface {
4
+ private logger;
5
+ constructor(logger: TsLogger<ILogObj>);
6
+ debug(...args: unknown[]): unknown | undefined;
7
+ error(...args: unknown[]): unknown | undefined;
8
+ info(...args: unknown[]): unknown | undefined;
9
+ warn(...args: unknown[]): unknown | undefined;
10
+ }
11
+ export { Logger };
@@ -0,0 +1,13 @@
1
+ import { ServiceIdentifier } from '../Type/Definition/index.js';
2
+ declare class ServiceResolver {
3
+ private readonly services;
4
+ constructor();
5
+ hasService(serviceIdentifier: ServiceIdentifier): boolean;
6
+ getService(serviceIdentifier: ServiceIdentifier): null | unknown;
7
+ setService(serviceIdentifier: ServiceIdentifier, service: unknown): ServiceResolver;
8
+ deleteService(serviceIdentifier: ServiceIdentifier): ServiceResolver;
9
+ getServiceIdentifiers(): ServiceIdentifier[];
10
+ getServices(): unknown[];
11
+ clearServices(): ServiceResolver;
12
+ }
13
+ export { ServiceResolver };
@@ -0,0 +1,3 @@
1
+ export * from './EventDispatcher.js';
2
+ export * from './Logger.js';
3
+ export * from './ServiceResolver.js';
@@ -0,0 +1,13 @@
1
+ type ActionManifest<C = object> = {
2
+ id: string;
3
+ name: string;
4
+ description: string;
5
+ tags: string[];
6
+ configuration?: C;
7
+ };
8
+ interface Action<T = unknown, C = object> {
9
+ getManifest(): ActionManifest<C>;
10
+ supports(data: unknown): boolean;
11
+ execute(data: unknown, configuration?: C): Promise<T>;
12
+ }
13
+ export { ActionManifest, Action };
@@ -0,0 +1,9 @@
1
+ declare const __brand: unique symbol;
2
+ type Brand<B> = {
3
+ [__brand]: B;
4
+ };
5
+ /**
6
+ * Branded types help to differentiate and validate primitive variables.
7
+ */
8
+ type Branded<T, B> = T & Brand<B>;
9
+ export { Brand, Branded };
@@ -0,0 +1,30 @@
1
+ import { EventIdentifier } from './EventIdentifier.js';
2
+ interface EventInterface {
3
+ getIdentifier(): EventIdentifier;
4
+ isPropagationStopped(): boolean;
5
+ stopPropagation(): this;
6
+ getContextValue(key: string): unknown;
7
+ setContextValue(key: string, value: unknown): this;
8
+ hasContextValue(key: string): boolean;
9
+ clearContextValue(key: string): this;
10
+ getContext(): Readonly<Record<string, unknown>>;
11
+ setContext(context: Record<string, unknown>): this;
12
+ clearContext(): this;
13
+ }
14
+ declare class Event implements EventInterface {
15
+ private readonly identifier;
16
+ private stopped;
17
+ private context;
18
+ constructor(identifier: EventIdentifier, context?: Record<string, unknown>);
19
+ getIdentifier(): EventIdentifier;
20
+ isPropagationStopped(): boolean;
21
+ stopPropagation(): this;
22
+ getContextValue(key: string): unknown;
23
+ setContextValue(key: string, value: unknown): this;
24
+ hasContextValue(key: string): boolean;
25
+ clearContextValue(key: string): this;
26
+ getContext(): Readonly<Record<string, unknown>>;
27
+ setContext(context: Record<string, unknown>): this;
28
+ clearContext(): this;
29
+ }
30
+ export { EventInterface, Event };
@@ -0,0 +1,11 @@
1
+ import { EventInterface } from './Event.js';
2
+ import { EventListener } from './EventListener.js';
3
+ import { EventListenerIdentifier } from './EventListenerIdentifier.js';
4
+ interface EventDispatcherInterface {
5
+ dispatchEvent(event: EventInterface): Promise<void>;
6
+ addListener(eventListenerIdentifier: EventListenerIdentifier, eventListener: EventListener, priority?: number): this;
7
+ removeListener(eventListenerIdentifier: EventListenerIdentifier, eventListener: EventListener): this;
8
+ getListeners(eventListenerIdentifier: EventListenerIdentifier): EventListener[];
9
+ hasListeners(eventListenerIdentifier: EventListenerIdentifier): boolean;
10
+ }
11
+ export { EventDispatcherInterface };
@@ -0,0 +1,8 @@
1
+ import { Branded } from './Branded.js';
2
+ /**
3
+ * Type safe variant of string containing event identifier.
4
+ */
5
+ type EventIdentifier = Branded<string, 'eventIdentifier'>;
6
+ declare const eventIdentifierRegex: RegExp;
7
+ declare function validateEventIdentifierFromString(eventIdentifier: string): EventIdentifier;
8
+ export { EventIdentifier, validateEventIdentifierFromString, eventIdentifierRegex };
@@ -0,0 +1,4 @@
1
+ import { EventInterface } from './Event.js';
2
+ import { OptionalPromise } from './OptionalPromise.js';
3
+ type EventListener = (event: EventInterface) => OptionalPromise<void>;
4
+ export { EventListener };
@@ -0,0 +1,10 @@
1
+ import { Branded } from './Branded.js';
2
+ import { EventIdentifier } from './EventIdentifier.js';
3
+ /**
4
+ * Type safe variant of string containing event identifier.
5
+ */
6
+ type EventListenerIdentifier = Branded<string, 'eventListenerIdentifier'>;
7
+ declare const eventListenerIdentifierRegex: RegExp;
8
+ declare function validateEventListenerIdentifierFromString(eventListenerIdentifier: string): EventListenerIdentifier;
9
+ declare function getEventListenerIdentifiersFromEventIdentifier(eventIdentifier: EventIdentifier): EventListenerIdentifier[];
10
+ export { EventListenerIdentifier, validateEventListenerIdentifierFromString, eventListenerIdentifierRegex, getEventListenerIdentifiersFromEventIdentifier, };
@@ -0,0 +1,7 @@
1
+ interface LoggerInterface {
2
+ debug(...args: unknown[]): unknown | undefined;
3
+ info(...args: unknown[]): unknown | undefined;
4
+ warn(...args: unknown[]): unknown | undefined;
5
+ error(...args: unknown[]): unknown | undefined;
6
+ }
7
+ export { LoggerInterface };
@@ -0,0 +1,2 @@
1
+ type OptionalPromise<T> = T | Promise<T>;
2
+ export { OptionalPromise };
@@ -0,0 +1,19 @@
1
+ import { RegistryInterface } from './Registry.js';
2
+ interface PriorityRegistryInterface<T = unknown> extends RegistryInterface<T> {
3
+ setEntry(key: string, entry: T, priority?: number): this;
4
+ getAllEntriesForKey(key: string): T[] | null;
5
+ }
6
+ declare class PriorityRegistry<T = unknown> implements PriorityRegistryInterface {
7
+ private readonly entries;
8
+ clearEntries(): this;
9
+ deleteEntry(key: string): this;
10
+ /**
11
+ * Returns the entry with the highest priority.
12
+ * If multiple entries have the same priority, the one which was added first gets returned.
13
+ */
14
+ getEntry(key: string): T | null;
15
+ hasEntry(key: string): boolean;
16
+ setEntry(key: string, entry: T, priority?: number): this;
17
+ getAllEntriesForKey(key: string): T[] | null;
18
+ }
19
+ export { PriorityRegistryInterface, PriorityRegistry };
@@ -0,0 +1,16 @@
1
+ interface RegistryInterface<T = unknown> {
2
+ getEntry(key: string): T | null;
3
+ hasEntry(key: string): boolean;
4
+ setEntry(key: string, entry: T): this;
5
+ deleteEntry(key: string): this;
6
+ clearEntries(): this;
7
+ }
8
+ declare class Registry<T = unknown> implements RegistryInterface<T> {
9
+ private readonly entries;
10
+ clearEntries(): this;
11
+ deleteEntry(key: string): this;
12
+ getEntry(key: string): T | null;
13
+ hasEntry(key: string): boolean;
14
+ setEntry(key: string, entry: T): this;
15
+ }
16
+ export { RegistryInterface, Registry };
@@ -0,0 +1,8 @@
1
+ import { Branded } from './Branded.js';
2
+ /**
3
+ * Type safe variant of string containing service identifier.
4
+ */
5
+ type ServiceIdentifier = Branded<string, 'serviceIdentifier'>;
6
+ declare const serviceIdentifierRegex: RegExp;
7
+ declare function validateServiceIdentifierFromString(serviceIdentifier: string): ServiceIdentifier;
8
+ export { ServiceIdentifier, validateServiceIdentifierFromString, serviceIdentifierRegex };
@@ -0,0 +1,12 @@
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';
@@ -0,0 +1,4 @@
1
+ declare enum EventIdentifier {
2
+ GetServiceResolver = "ember-nexus-app-core-get-service-resolver"
3
+ }
4
+ export { EventIdentifier };
@@ -0,0 +1,9 @@
1
+ declare enum ServiceIdentifier {
2
+ emberNexusWebSDK = "ember-nexus.web-sdk",
3
+ eventDispatcher = "global.event-dispatcher",
4
+ logger = "global.logger",
5
+ action = "global.action-registry",
6
+ setting = "global.setting-registry",
7
+ icon = "global.icon-registry"
8
+ }
9
+ export { ServiceIdentifier };
@@ -0,0 +1,2 @@
1
+ export * from './EventIdentifier.js';
2
+ export * from './ServiceIdentifier.js';
@@ -0,0 +1,2 @@
1
+ declare const customEventDefaultInit: EventInit;
2
+ export { customEventDefaultInit };
@@ -0,0 +1 @@
1
+ export * from './CustomEventDefaultInit.js';
@@ -0,0 +1,3 @@
1
+ export * as Definition from './Definition/index.js';
2
+ export * as Enum from './Enum/index.js';
3
+ export * as Partial from './Partial/index.js';
@@ -0,0 +1,5 @@
1
+ export * as BrowserEvent from './BrowserEvent/index.js';
2
+ export * as Error from './Error/index.js';
3
+ export * as Service from './Service/index.js';
4
+ export * as Type from './Type/index.js';
5
+ export * from './Init.js';
package/package.json ADDED
@@ -0,0 +1,93 @@
1
+ {
2
+ "name": "@ember-nexus/app-core",
3
+ "version": "0.0.1",
4
+ "type": "module",
5
+ "engines": {
6
+ "node": ">= 20.0"
7
+ },
8
+ "module": "dist/esm/index.js",
9
+ "browser": "dist/browser/index.js",
10
+ "types": "dist/types/index.d.ts",
11
+ "exports": {
12
+ "./package.json": "./package.json",
13
+ ".": {
14
+ "import": {
15
+ "types": "./dist/types/index.d.ts",
16
+ "default": "./dist/esm/index.js"
17
+ }
18
+ }
19
+ },
20
+ "scripts": {
21
+ "build": "rm -rf ./dist && yarn build:esm && yarn build:browser",
22
+ "build:browser": "webpack --config webpack.config.cjs",
23
+ "build:esm": "yarn tsc -b tsconfig.esm.json",
24
+ "cs": "eslint ./src ./test",
25
+ "cs:fix": "eslint ./src ./test --fix",
26
+ "test:unit": "vitest run ./test/Unit",
27
+ "test:unit:coverage": "vitest run ./test/Unit --coverage",
28
+ "prepare": "ts-patch install",
29
+ "typedoc": "typedoc --tsconfig tsconfig.json"
30
+ },
31
+ "author": "Syndesi <info@ember-nexus.dev>",
32
+ "license": "MIT",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/ember-nexus/app-core.git"
36
+ },
37
+ "homepage": "https://ember-nexus.github.io/app-core/#/",
38
+ "browserslist": [
39
+ "last 1 years and not dead"
40
+ ],
41
+ "dependencies": {
42
+ "@ember-nexus/web-sdk": "^0.1.1",
43
+ "lru-cache": "^10.0.1",
44
+ "luxon": "^3.4.4",
45
+ "reflect-metadata": "^0.2",
46
+ "tslib": "^2.8.1",
47
+ "tslog": "^4.9.3",
48
+ "typedi": "^0.10.0"
49
+ },
50
+ "devDependencies": {
51
+ "@eslint/compat": "^1.1.0",
52
+ "@eslint/eslintrc": "^3.1.0",
53
+ "@eslint/js": "^9.6.0",
54
+ "@types/jsdom": "^21.1.7",
55
+ "@types/luxon": "^3.3.4",
56
+ "@types/node": "^20.8.10",
57
+ "@types/sinon": "^17.0.0",
58
+ "@typescript-eslint/eslint-plugin": "^7.16",
59
+ "@typescript-eslint/parser": "^7.16",
60
+ "@typescript/lib-dom": "npm:@types/web",
61
+ "@vitest/coverage-v8": "^3.0.9",
62
+ "@vitest/eslint-plugin": "^1.1.38",
63
+ "@vitest/ui": "^3.0.9",
64
+ "eslint": "^9.6.0",
65
+ "eslint-config-prettier": "^9.1.0",
66
+ "eslint-import-resolver-typescript": "^3.6.1",
67
+ "eslint-plugin-compat": "^6.0.1",
68
+ "eslint-plugin-import": "^2.29.1",
69
+ "eslint-plugin-prettier": "^5.1.3",
70
+ "eslint-plugin-promise": "^7.1.0",
71
+ "eslint-plugin-require-extensions": "^0.1.3",
72
+ "http-server": "^14.1.1",
73
+ "jsdom": "^26.0.0",
74
+ "msw": "^2.0.2",
75
+ "prettier": "^3.0.3",
76
+ "sinon": "^18.0",
77
+ "terser-webpack-plugin": "^5.3.10",
78
+ "transpile-webpack-plugin": "^1.1.3",
79
+ "ts-loader": "^9.5.1",
80
+ "ts-mockito": "^2.6.1",
81
+ "ts-node": "^10.9.2",
82
+ "ts-patch": "^3.0.2",
83
+ "tsutils": "~3.21",
84
+ "typedoc": "^0.26",
85
+ "typedoc-plugin-markdown": "^4.1",
86
+ "typedoc-plugin-mdn-links": "^3.1.9",
87
+ "typedoc-theme-hierarchy": "^5.0",
88
+ "typescript": "^5.5",
89
+ "vitest": "^3.0.9",
90
+ "webpack": "^5.89.0",
91
+ "webpack-cli": "^5.1.4"
92
+ }
93
+ }