@ztimson/momentum 0.53.2 → 1.0.0

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 (88) hide show
  1. package/README.md +96 -41
  2. package/bin/build-models.mjs +28 -37
  3. package/dist/actions.d.ts +67 -52
  4. package/dist/actions.d.ts.map +1 -1
  5. package/dist/ai.d.ts +43 -17
  6. package/dist/ai.d.ts.map +1 -1
  7. package/dist/analytics.d.ts +169 -36
  8. package/dist/analytics.d.ts.map +1 -1
  9. package/dist/api.d.ts +22 -22
  10. package/dist/api.d.ts.map +1 -1
  11. package/dist/asset-controller.d.ts +92 -0
  12. package/dist/asset-controller.d.ts.map +1 -0
  13. package/dist/audit.d.ts +22 -0
  14. package/dist/audit.d.ts.map +1 -0
  15. package/dist/auth.d.ts +34 -101
  16. package/dist/auth.d.ts.map +1 -1
  17. package/dist/call.d.ts +61 -0
  18. package/dist/call.d.ts.map +1 -0
  19. package/dist/captcha.d.ts +14 -0
  20. package/dist/captcha.d.ts.map +1 -0
  21. package/dist/client.d.ts +46 -33
  22. package/dist/client.d.ts.map +1 -1
  23. package/dist/core.d.ts +50 -21
  24. package/dist/core.d.ts.map +1 -1
  25. package/dist/data.d.ts +58 -76
  26. package/dist/data.d.ts.map +1 -1
  27. package/dist/dialog.d.ts +11 -0
  28. package/dist/dialog.d.ts.map +1 -0
  29. package/dist/discounts.d.ts +8 -12
  30. package/dist/discounts.d.ts.map +1 -1
  31. package/dist/email.d.ts +19 -19
  32. package/dist/email.d.ts.map +1 -1
  33. package/dist/forms.d.ts +6 -13
  34. package/dist/forms.d.ts.map +1 -1
  35. package/dist/groups.d.ts +22 -16
  36. package/dist/groups.d.ts.map +1 -1
  37. package/dist/index.d.ts +14 -3
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +4473 -0
  40. package/dist/index.mjs +3469 -1752
  41. package/dist/logger.d.ts +78 -48
  42. package/dist/logger.d.ts.map +1 -1
  43. package/dist/momentum.d.ts +71 -15
  44. package/dist/momentum.d.ts.map +1 -1
  45. package/dist/momentum.worker.d.mts +2 -0
  46. package/dist/momentum.worker.d.mts.map +1 -0
  47. package/dist/momentum.worker.mjs +124 -0
  48. package/dist/notifications.d.ts +39 -0
  49. package/dist/notifications.d.ts.map +1 -0
  50. package/dist/pdf.d.ts +32 -14
  51. package/dist/pdf.d.ts.map +1 -1
  52. package/dist/permissions.d.ts +19 -0
  53. package/dist/permissions.d.ts.map +1 -0
  54. package/dist/products.d.ts +47 -0
  55. package/dist/products.d.ts.map +1 -0
  56. package/dist/routes.d.ts +40 -0
  57. package/dist/routes.d.ts.map +1 -0
  58. package/dist/schemas.d.ts +79 -0
  59. package/dist/schemas.d.ts.map +1 -0
  60. package/dist/settings.d.ts +30 -14
  61. package/dist/settings.d.ts.map +1 -1
  62. package/dist/sms.d.ts +14 -0
  63. package/dist/sms.d.ts.map +1 -0
  64. package/dist/sockets.d.ts +22 -12
  65. package/dist/sockets.d.ts.map +1 -1
  66. package/dist/static.d.ts +4 -2
  67. package/dist/static.d.ts.map +1 -1
  68. package/dist/storage.d.ts +103 -24
  69. package/dist/storage.d.ts.map +1 -1
  70. package/dist/templates.d.ts +23 -0
  71. package/dist/templates.d.ts.map +1 -0
  72. package/dist/tokens.d.ts +50 -0
  73. package/dist/tokens.d.ts.map +1 -0
  74. package/dist/totp.d.ts +45 -0
  75. package/dist/totp.d.ts.map +1 -0
  76. package/dist/transactions.d.ts +153 -0
  77. package/dist/transactions.d.ts.map +1 -0
  78. package/dist/users.d.ts +63 -25
  79. package/dist/users.d.ts.map +1 -1
  80. package/dist/webRtc.d.ts +39 -0
  81. package/dist/webRtc.d.ts.map +1 -0
  82. package/package.json +23 -13
  83. package/dist/index.cjs +0 -2756
  84. package/dist/momentum.worker.js +0 -16
  85. package/dist/payments.d.ts +0 -184
  86. package/dist/payments.d.ts.map +0 -1
  87. package/dist/phone.d.ts +0 -19
  88. package/dist/phone.d.ts.map +0 -1
package/dist/call.d.ts ADDED
@@ -0,0 +1,61 @@
1
+ import { Message, PathEventEmitter } from './core';
2
+ import { Momentum } from './momentum';
3
+ export type AiReceptionist = {
4
+ ai: {
5
+ tools?: [];
6
+ } & InteractiveCall;
7
+ };
8
+ export type ForwardCall = {
9
+ forward: {
10
+ user: string;
11
+ prompt?: string;
12
+ } | {
13
+ number: string;
14
+ prompt?: string;
15
+ };
16
+ };
17
+ export type HangupCall = {
18
+ hangup: string;
19
+ };
20
+ export type RecordCall = {
21
+ record: {
22
+ path?: string;
23
+ prompt?: string;
24
+ length?: string;
25
+ };
26
+ };
27
+ export type Repeat = {
28
+ repeat: true;
29
+ };
30
+ export type InteractiveCall = {
31
+ /** Default message */
32
+ '_': string | AiReceptionist | ForwardCall | HangupCall | RecordCall;
33
+ /** Interactive voice response on key press */
34
+ [key: string]: string | AiReceptionist | ForwardCall | HangupCall | RecordCall | Repeat | InteractiveCall;
35
+ };
36
+ /** Create call with steps */
37
+ export type PhoneCall = Omit<Message, 'body'> & {
38
+ /** Text to speech, use dictionary to create an interactive voice response system (IVR) */
39
+ body: string | InteractiveCall;
40
+ /** Create voice recording of call */
41
+ record?: boolean;
42
+ };
43
+ /** Send messages */
44
+ export declare class Call extends PathEventEmitter {
45
+ protected momentum: Momentum;
46
+ constructor(momentum: Momentum);
47
+ /**
48
+ * Place a call to number
49
+ * @param {Call} message Text that will be converted to speech
50
+ * @return {Promise<any>} Twilio call instance
51
+ */
52
+ create(message: PhoneCall): Promise<any>;
53
+ /**
54
+ * Get available numbers and voice
55
+ */
56
+ info(): Promise<{
57
+ numbers: string[];
58
+ voice: string;
59
+ }>;
60
+ }
61
+ //# sourceMappingURL=call.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../src/call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,gBAAgB,EAAM,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAAC,EAAE,EAAE;QAAC,KAAK,CAAC,EAAE,EAAE,CAAA;KAAC,GAAG,eAAe,CAAA;CAAC,CAAA;AACjE,MAAM,MAAM,WAAW,GAAG;IAAC,OAAO,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,CAAA;CAAC,CAAC;AACzG,MAAM,MAAM,UAAU,GAAG;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG;IAAC,MAAM,EAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,CAAA;CAAC,CAAC;AACrF,MAAM,MAAM,MAAM,GAAG;IAAC,MAAM,EAAE,IAAI,CAAA;CAAC,CAAC;AACpC,MAAM,MAAM,eAAe,GAAG;IAC7B,sBAAsB;IACtB,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC;IACrE,8CAA8C;IAC9C,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,eAAe,CAAC;CAC1G,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG;IAC/C,0FAA0F;IAC1F,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;IAC/B,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,CAAA;AAED,oBAAoB;AACpB,qBAAa,IAAK,SAAQ,gBAAgB;IAC7B,SAAS,CAAC,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ;IAIxC;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAKxC;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC;CAGnD"}
@@ -0,0 +1,14 @@
1
+ export declare class Captcha {
2
+ private start;
3
+ private events;
4
+ private lastMouse;
5
+ private velocities;
6
+ private _score;
7
+ private set score(value);
8
+ get score(): number;
9
+ get verdict(): 'unknown' | 'human' | 'bot';
10
+ constructor();
11
+ private validUserAgent;
12
+ update(): void;
13
+ }
14
+ //# sourceMappingURL=captcha.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../src/captcha.ts"],"names":[],"mappings":"AAAA,qBAAa,OAAO;IACnB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAoF;IAClG,OAAO,CAAC,SAAS,CAAkD;IACnE,OAAO,CAAC,UAAU,CAAgB;IAElC,OAAO,CAAC,MAAM,CAAO;IACrB,OAAO,KAAK,KAAK,QAAwB;IACzC,IAAI,KAAK,WAA0B;IAEnC,IAAI,OAAO,IAAI,SAAS,GAAG,OAAO,GAAG,KAAK,CAIzC;;IAsCD,OAAO,CAAC,cAAc;IAStB,MAAM;CAyCN"}
package/dist/client.d.ts CHANGED
@@ -1,50 +1,63 @@
1
- import { PathEventEmitter } from '@ztimson/utils';
2
- import { Api } from './api';
3
- import { Settings } from './settings';
1
+ import { Momentum } from './momentum';
2
+ import { PathEventEmitter } from './core';
4
3
  export type Platform = 'windows' | 'android' | 'ios' | 'mac' | 'linux' | 'unknown';
4
+ /** Handle device settings */
5
5
  export declare class Client extends PathEventEmitter {
6
- private api;
7
- private readonly settings;
8
- /** Check if iframed */
9
- get iframe(): boolean;
10
- /** Check if mobile device */
11
- get mobile(): boolean;
12
- private _notifications;
13
- /** Are notifications enabled */
14
- get notifications(): boolean;
15
- private set notifications(value);
6
+ protected momentum: Momentum;
7
+ private captcha;
8
+ private installTimeout;
9
+ private nativePwaPrompt?;
10
+ private pendingInstall;
11
+ private speed;
12
+ private updating;
13
+ get actorType(): 'unknown' | 'human' | 'bot';
14
+ get captchaScore(): number;
15
+ /** Check for updates */
16
+ readonly updateReady: Promise<boolean>;
17
+ /** Check if PWA can be installed */
18
+ get canInstall(): boolean;
19
+ /** Running inside a container */
20
+ get isApp(): boolean;
21
+ /** Running inside an electron app */
22
+ get isElectron(): boolean;
23
+ /** Headless client without access to DOM */
24
+ get isHeadless(): boolean;
25
+ /** Running inside an iframe */
26
+ get isIframe(): boolean;
27
+ /** Running on a mobile device */
28
+ get isMobile(): boolean;
29
+ private _isPwa?;
30
+ /** Running as a PWA */
31
+ get isPwa(): boolean;
16
32
  private _platform?;
17
33
  /** Get the current platform type */
18
34
  get platform(): Platform;
19
- /** Get Push Subscription info */
20
- get pushSubscription(): Promise<PushSubscription | null>;
21
- private _pwa?;
22
- /** Check if running as a PWA */
23
- get pwa(): boolean;
24
- constructor(api: Api, settings: Settings);
35
+ get storage(): boolean;
36
+ constructor(momentum: Momentum);
25
37
  /**
26
38
  * Inject the client theme settings, meta tags & PWA prompt
27
39
  * @param opts Injection options: reload - use cached settings or reload; pwa - disabled auto pwa prompt
28
40
  * @return {Promise<void>} Resolves on completion
29
41
  */
30
- init(opts?: {
42
+ inject(opts?: {
43
+ install?: boolean;
31
44
  reload?: boolean;
32
- pwa?: boolean;
33
- }): Promise<void>;
45
+ }): Promise<{
46
+ [key: string]: any;
47
+ }>;
34
48
  /**
35
- * Create UI prompt for user to install as PWA
36
- * @param platform Platform prompt, leave blank to auto-detect
49
+ * Get current network speed
50
+ * @param {boolean} format false = number (bytes-per-second), true = formated string
51
+ * @returns {Promise<number | string>}
37
52
  */
38
- pwaPrompt(platform?: 'android' | 'ios'): void;
53
+ networkSpeed(format: true): Promise<string>;
54
+ networkSpeed(format?: false): Promise<number>;
39
55
  /**
40
- * Enable device notifications
41
- * @return {Promise<null>} Resolves on success
56
+ * Create an installation prompt popup
57
+ * @param platform Platform specific prompt, leave blank to auto-detect
42
58
  */
43
- enableNotifications(): Promise<null>;
44
- /**
45
- * Disable device notifications
46
- * @return {Promise<void>} Resolves on success
47
- */
48
- disableNotifications(): Promise<void>;
59
+ install(platform?: Platform): Promise<unknown>;
60
+ /** Update service worker & other tabs */
61
+ update(): void;
49
62
  }
50
63
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAM,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;AAEnF,qBAAa,MAAO,SAAQ,gBAAgB;IA6C/B,OAAO,CAAC,GAAG;IAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ;IA3CvD,uBAAuB;IACvB,IAAI,MAAM,IAAI,OAAO,CAAyC;IAE9D,6BAA6B;IAC7B,IAAI,MAAM,IAAI,OAAO,CAAuD;IAE5E,OAAO,CAAC,cAAc,CAAS;IAC/B,gCAAgC;IAChC,IAAI,aAAa,IAAI,OAAO,CAAgC;IAC5D,OAAO,KAAK,aAAa,QAGxB;IAED,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,oCAAoC;IACpC,IAAI,QAAQ,IAAI,QAAQ,CAWvB;IAED,iCAAiC;IACjC,IAAI,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAGvD;IAED,OAAO,CAAC,IAAI,CAAC,CAAU;IACvB,gCAAgC;IAChC,IAAI,GAAG,IAAI,OAAO,CAIjB;gBAEmB,GAAG,EAAE,GAAG,EAAmB,QAAQ,EAAE,QAAQ;IAKjE;;;;OAIG;IACG,IAAI,CAAC,IAAI,GAAE;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAM;IA4FvD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK;IAqItC;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAa1C;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CAO3C"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,gBAAgB,EAAM,MAAM,QAAQ,CAAA;AAE5C,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;AAEnF,6BAA6B;AAC7B,qBAAa,MAAO,SAAQ,gBAAgB;IAqE/B,SAAS,CAAC,QAAQ,EAAE,QAAQ;IApExC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,eAAe,CAAC,CAAM;IAC9B,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAS;IAEzB,IAAI,SAAS,IAAI,SAAS,GAAG,OAAO,GAAG,KAAK,CAAiC;IAC7E,IAAI,YAAY,IAAI,MAAM,CAA+B;IAEzD,wBAAwB;IACxB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAYnC;IAEH,oCAAoC;IACpC,IAAI,UAAU,IAAI,OAAO,CAAmC;IAE5D,iCAAiC;IACjC,IAAI,KAAK,IAAI,OAAO,CAA2D;IAE/E,qCAAqC;IACrC,IAAI,UAAU,IAAI,OAAO,CAAgD;IAEzE,4CAA4C;IAC5C,IAAI,UAAU,IAAI,OAAO,CAAyC;IAElE,+BAA+B;IAC/B,IAAI,QAAQ,IAAI,OAAO,CAAyC;IAEhE,iCAAiC;IACjC,IAAI,QAAQ,IAAI,OAAO,CAAuD;IAE9E,OAAO,CAAC,MAAM,CAAC,CAAU;IACzB,uBAAuB;IACvB,IAAI,KAAK,IAAI,OAAO,CAInB;IAED,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,oCAAoC;IACpC,IAAI,QAAQ,IAAI,QAAQ,CAWvB;IAED,IAAI,OAAO,YAAiD;gBAEtC,QAAQ,EAAE,QAAQ;IAyBxC;;;;OAIG;IACG,MAAM,CAAC,IAAI,GAAE;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAM,GAAG,OAAO,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAkG7F;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3C,YAAY,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAO7C;;;OAGG;IACG,OAAO,CAAC,QAAQ,GAAE,QAAwB;IAwGhD,yCAAyC;IACzC,MAAM;CAUN"}
package/dist/core.d.ts CHANGED
@@ -1,33 +1,57 @@
1
- import { PathEvent } from '@ztimson/utils';
1
+ /** Communication method */
2
+ export type AlertMethod = 'call' | 'email' | 'notification' | 'sms';
3
+ /** Alert */
4
+ export type Alert = {
5
+ /** Triggering event */
6
+ event: string;
7
+ /** Notify via methods */
8
+ method: AlertMethod[];
9
+ /** Notification name/title */
10
+ message: Omit<Message, 'to'> & {
11
+ /** Include link */
12
+ link?: string;
13
+ };
14
+ };
15
+ /** Excel formula column type */
16
+ export type Formula = string | any;
17
+ /** Link column type */
18
+ export type Link = string;
2
19
  /** Metadata model */
3
20
  export type Meta = {
4
21
  /** Document ID */
5
- _id?: string | any;
22
+ readonly _id?: string | any;
6
23
  /** Creator username */
7
- _createdBy: string;
24
+ readonly _createdBy?: string | null;
8
25
  /** Created timestamp */
9
- _createdDate: Date;
26
+ readonly _createdDate?: Date | null;
10
27
  /** Modifier username */
11
- _updatedBy: string;
28
+ readonly _updatedBy?: string | null;
12
29
  /** Modified timestamp */
13
- _updatedDate: Date;
30
+ readonly _updatedDate?: Date | null;
14
31
  };
15
- /** Methods of notification */
16
- export type NotificationMethod = 'email' | 'notification' | 'sms' | 'voice';
17
- /** Notification model */
18
- export type Notification = {
19
- /** Triggering event */
20
- event: string;
21
- /** Notify via methods */
22
- method: NotificationMethod[];
23
- /** Notification name/title */
24
- subject?: string | ((event: PathEvent, ...args: any[]) => string);
25
- /** Body of notification */
26
- body: string | ((event: PathEvent, ...args: any[]) => string);
27
- /** Link to on activation */
28
- link?: string;
32
+ /** SMS or Phone call message */
33
+ export type Message = {
34
+ /** Message recipients */
35
+ to: string | string[];
36
+ /** Message subject/title */
37
+ subject?: string;
38
+ /** Leave blank or specify a from address if there are options */
39
+ from?: string;
40
+ /** Message body */
41
+ body: string;
42
+ };
43
+ /** Saved message log */
44
+ export type MessageLog<T> = {
45
+ /** Message UID */
46
+ readonly _id: string;
47
+ /** Sent timestamp */
48
+ readonly _createdBy: string | null;
49
+ /** Message initiator */
50
+ readonly _createdDate: Date;
51
+ /** Message body */
52
+ message: T;
29
53
  };
30
- export type Optional<T, O> = Omit<T, keyof O> & Pick<Partial<O>, keyof O>;
54
+ export { type IPathEventEmitter, PE, PES, PathEvent, type PathListener, type PathUnsubscribe, PathEventEmitter } from '@ztimson/utils';
31
55
  /** Recursive type for defining tree data */
32
56
  export type TreeNode<T> = T & {
33
57
  /** Name of node */
@@ -35,4 +59,9 @@ export type TreeNode<T> = T & {
35
59
  /** Node children */
36
60
  children: TreeNode<T>[];
37
61
  };
62
+ export { type Unsubscribe } from '@ztimson/utils';
63
+ export declare function treeBuilder<T extends {
64
+ path: string;
65
+ }>(schemas: T[]): TreeNode<T>[];
66
+ export declare function validEvent(event: string): boolean;
38
67
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,qBAAqB;AACrB,MAAM,MAAM,IAAI,GAAG;IAClB,kBAAkB;IAClB,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,YAAY,EAAE,IAAI,CAAC;IACnB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,YAAY,EAAE,IAAI,CAAC;CACnB,CAAA;AAED,8BAA8B;AAC9B,MAAM,MAAM,kBAAkB,GAAI,OAAO,GAAG,cAAc,GAAG,KAAK,GAAG,OAAO,CAAC;AAE7E,yBAAyB;AACzB,MAAM,MAAM,YAAY,GAAG;IAC1B,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;IAClE,2BAA2B;IAC3B,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;IAC9D,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAA;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAE1E,4CAA4C;AAC5C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG;IAC7B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,KAAK,CAAC;AAEpE,YAAY;AACZ,MAAM,MAAM,KAAK,GAAG;IACnB,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,8BAA8B;IAC9B,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG;QAC9B,mBAAmB;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACF,CAAA;AAED,gCAAgC;AAChC,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,GAAG,CAAC;AAEnC,uBAAuB;AACvB,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC;AAE1B,qBAAqB;AACrB,MAAM,MAAM,IAAI,GAAG;IAClB,kBAAkB;IAClB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,uBAAuB;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,wBAAwB;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpC,wBAAwB;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,yBAAyB;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpC,CAAA;AAED,gCAAgC;AAChC,MAAM,MAAM,OAAO,GAAG;IACrB,yBAAyB;IACzB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;CACb,CAAA;AAED,wBAAwB;AACxB,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC3B,kBAAkB;IAClB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,wBAAwB;IACxB,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5B,mBAAmB;IACnB,OAAO,EAAE,CAAC,CAAC;CACX,CAAA;AAED,OAAO,EACN,KAAK,iBAAiB,EACtB,EAAE,EAAE,GAAG,EAAE,SAAS,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,gBAAgB,EAChB,MAAM,gBAAgB,CAAC;AAExB,4CAA4C;AAC5C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG;IAC7B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB,CAAC;AAEF,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAEhD,wBAAgB,WAAW,CAAC,CAAC,SAAS;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CA0CjF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,WAMvC"}
package/dist/data.d.ts CHANGED
@@ -1,91 +1,73 @@
1
- import { Api } from './api';
2
- import { Meta, TreeNode } from './core';
3
- import { PathEventEmitter, PromiseProgress } from '@ztimson/utils';
1
+ import { Unsubscribe } from '@ztimson/utils';
2
+ import { Meta, PathEventEmitter } from './core';
3
+ import { Momentum } from './momentum';
4
+ /** Generic MongoDB document */
4
5
  export type Document<T> = Meta & T;
6
+ /** Raw MongoDB query */
5
7
  export type RawQuery = {
8
+ /** Query operation type */
6
9
  operand: 'delete' | 'deleteOne' | 'find' | 'findOne' | 'insertOne' | 'replaceOne' | 'update' | 'updateOne';
10
+ /** Filter affected documents */
7
11
  filter?: any;
12
+ /** Query */
8
13
  data?: any;
14
+ /** MongoDB operation options */
9
15
  options?: any;
16
+ /** Return document count */
10
17
  count?: boolean;
11
18
  };
12
- export type Schema = Meta & {
13
- /** Collection path/name */
14
- path: string;
15
- /** Description of data */
16
- description?: string;
17
- /** Associated form for viewing/editing */
18
- form?: string;
19
- /** Hide columns */
20
- hide?: string[];
21
- /** Lock collection from changes */
22
- lock?: boolean;
23
- /** Data must match defined columns */
24
- strict?: boolean;
25
- /** Allow updates to create row if missing */
26
- upsert?: boolean;
27
- /** Defined fields */
28
- columns?: SchemaColumn[];
29
- };
30
- export type SchemaColumn = {
31
- /** Display label */
32
- label: string;
33
- /** Property key */
34
- prop: string;
35
- /** Variable type */
36
- type?: 'any' | 'boolean' | 'formula' | 'javascript' | 'link' | 'number' | 'string' | 'timestamp';
37
- /** Display formating */
38
- format?: any;
39
- /** Default value */
40
- default?: any;
41
- /** Must have value */
42
- required?: boolean;
43
- /** Style */
44
- style: SchemaColumnStyle;
45
- };
46
- export type SchemaColumnStyle = {
47
- /** Align column content */
48
- align?: 'center' | 'left' | 'right';
49
- /** Background color */
50
- background?: string;
51
- /** Bold column text */
52
- bold?: boolean;
53
- /** Column text color */
54
- color?: string;
55
- /** Italicize column text */
56
- italics?: boolean;
57
- /** Strikethrough column text */
58
- strike?: boolean;
59
- /** Underline column text */
60
- underline?: boolean;
61
- /** Column width */
62
- width?: string;
63
- /** Conditional formating */
64
- conditional: (Omit<SchemaColumnStyle, 'conditional'> & {
65
- condition: string;
66
- })[];
67
- };
68
- declare class Schemas extends PathEventEmitter {
69
- private api;
70
- constructor(api: Api);
71
- delete(path: string): PromiseProgress<any>;
72
- read(tree?: false): Promise<Schema[]>;
73
- read(tree: true): Promise<TreeNode<Schema>[]>;
74
- read(path: string): Promise<Schema>;
75
- update(schema: Partial<Schema> & {
76
- path: string;
77
- }): PromiseProgress<Schema>;
78
- }
19
+ /** Create custom data collections */
79
20
  export declare class Data extends PathEventEmitter {
80
- private readonly api;
81
- schema: Schemas;
82
- constructor(api: Api | string);
21
+ protected momentum: Momentum;
22
+ protected readonly subscribers: {
23
+ [key: string]: Unsubscribe;
24
+ };
25
+ constructor(momentum: Momentum);
26
+ /**
27
+ * Create new document in collection
28
+ * @param {string} collection Target collection
29
+ * @param {Document<T>} document New document
30
+ * @return {Promise<Document<T>>} New saved document
31
+ */
83
32
  create<T>(collection: string, document: Document<T>): Promise<Document<T>>;
84
- delete(collection: string, id: number): Promise<void>;
33
+ /**
34
+ * Delete document from collection
35
+ * @param {string} collection Target collection
36
+ * @param {number} id Document ID
37
+ * @return {Promise<void>} Returns once complete
38
+ */
39
+ delete(collection: string, id: number): Promise<number>;
40
+ /**
41
+ * Read collection/document
42
+ * @param {string} collection target collection/document
43
+ * @return {Promise<T[] | T>} Found collection of documents
44
+ */
85
45
  read<T extends Meta>(collection: string): Promise<T[]>;
86
46
  read<T extends Meta>(collection: string, id: number): Promise<T>;
47
+ /**
48
+ * Update document in collection
49
+ * @param {string} collection Target collection
50
+ * @param {Document<T>} document Document to update
51
+ * @param {boolean} append Append or replace existing document
52
+ * @return {Promise<Document<T>>} New saved document
53
+ */
87
54
  update<T>(collection: string, document: Document<T>, append?: boolean): Promise<Document<T>>;
88
- raw<T>(collection: string, query: RawQuery): Promise<Document<T>>;
55
+ /**
56
+ * Create raw MongoDB query
57
+ * @param {string} collection Target collection name
58
+ * @param {RawQuery} query Raw query
59
+ * @return {Promise<any>} Query response
60
+ */
61
+ raw<T>(collection: string, query: RawQuery): Promise<any>;
62
+ /**
63
+ * Subscribe to live updates with callback
64
+ * @param path Path to data
65
+ * @param {(value: T[]) => any | null} callback Received changes
66
+ * @param opts Reload data immediately
67
+ * @return {() => void} Function to unsubscribe
68
+ */
69
+ sync<T>(path: string, callback: ((value: T | T[]) => any), opts?: {
70
+ reload?: boolean;
71
+ }): Unsubscribe;
89
72
  }
90
- export {};
91
73
  //# sourceMappingURL=data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAC,KAAK,IAAI,EAAE,gBAAgB,EAAM,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,+BAA+B;AAC/B,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;AAEnC,wBAAwB;AACxB,MAAM,MAAM,QAAQ,GAAG;IACtB,2BAA2B;IAC3B,OAAO,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC3G,gCAAgC;IAChC,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,YAAY;IACZ,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,gCAAgC;IAChC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,4BAA4B;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB,CAAA;AAED,qCAAqC;AACrC,qBAAa,IAAK,SAAQ,gBAAgB;IAG7B,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAFxC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAC,CAAM;gBAE5C,QAAQ,EAAE,QAAQ;IAIxC;;;;;OAKG;IACH,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAY1E;;;;;OAKG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU7D;;;;OAIG;IACH,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IACtD,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAShE;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAY5F;;;;;OAKG;IACH,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IASzD;;;;;;OAMG;IACH,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,GAAE;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAM,GAAG,WAAW;CAmBtG"}
@@ -0,0 +1,11 @@
1
+ export declare function createDialog(html: string, opts?: {
2
+ backdrop?: boolean;
3
+ css?: string;
4
+ closeBtn?: boolean;
5
+ position?: 'center' | 'corner';
6
+ }): {
7
+ close: (result?: any) => void;
8
+ dialog: HTMLDivElement;
9
+ result: Promise<unknown>;
10
+ };
11
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../src/dialog.ts"],"names":[],"mappings":"AACA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAAM;qBAuLnH,GAAG;;;EAuB3B"}
@@ -1,10 +1,10 @@
1
- import { PathEventEmitter } from '@ztimson/utils';
2
- import { Api } from './api';
1
+ import { AssetController } from './asset-controller';
3
2
  import { Meta } from './core';
3
+ import { Momentum } from './momentum';
4
4
  /** Payment discounts */
5
5
  export type Discount = Meta & {
6
6
  /** Discount code */
7
- code: string;
7
+ readonly _id: string;
8
8
  /** Discount information */
9
9
  description?: string;
10
10
  /** Invalidate discount code */
@@ -14,17 +14,13 @@ export type Discount = Meta & {
14
14
  /** Type of discount: fixed - flat rate, percent - percentage of total */
15
15
  type: 'fixed' | 'percent';
16
16
  /** Number of times used */
17
- used?: number;
17
+ readonly used?: number;
18
18
  /** Value of discount: integer when fixed, float between 0-1 when percent */
19
19
  value: number;
20
20
  };
21
- export declare class Discounts extends PathEventEmitter {
22
- private api;
23
- constructor(api: Api);
24
- all(): Promise<Discount[]>;
25
- create(discount: Partial<Discount>): Promise<Discount>;
26
- delete(discount: string | Partial<Discount>): Promise<void>;
27
- read(code: string): Promise<Discount>;
28
- update(discount: Partial<Discount>): Promise<Discount>;
21
+ /** Create discounts for payments */
22
+ export declare class Discounts extends AssetController<Discount> {
23
+ protected momentum: Momentum;
24
+ constructor(momentum: Momentum);
29
25
  }
30
26
  //# sourceMappingURL=discounts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discounts.d.ts","sourceRoot":"","sources":["../src/discounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAE5B,wBAAwB;AACxB,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG;IAC7B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,2BAA2B;IAC3B,IAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;CACd,CAAA;AAED,qBAAa,SAAU,SAAQ,gBAAgB;IAClC,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,GAAG;IAI5B,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAU1B,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAWtD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAUrC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;CAUtD"}
1
+ {"version":3,"file":"discounts.d.ts","sourceRoot":"","sources":["../src/discounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,wBAAwB;AACxB,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG;IAC7B,oBAAoB;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,2BAA2B;IAC3B,QAAQ,CAAC,IAAK,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;CACd,CAAA;AAED,oCAAoC;AACpC,qBAAa,SAAU,SAAQ,eAAe,CAAC,QAAQ,CAAC;IAC3C,SAAS,CAAC,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ;CAGxC"}
package/dist/email.d.ts CHANGED
@@ -1,35 +1,35 @@
1
- import { PathEventEmitter } from '@ztimson/utils';
2
- import { Api } from './api';
1
+ import { PathEventEmitter } from './core';
2
+ import { Momentum } from './momentum';
3
+ import { RenderTemplate } from './templates';
3
4
  /** Email model */
4
5
  export type Mail = {
5
- /** Sending mailing list */
6
+ /** Message recipients */
6
7
  to: string | string[];
7
- /** CSS mailing list */
8
+ /** Message subject/title */
9
+ subject?: string;
10
+ /** Leave blank or specify a from address if there are options */
11
+ from?: string;
12
+ /** Send copy to recipients */
8
13
  cc?: string[];
9
- /** BCC mailing list */
14
+ /** Send copy to recipients silently */
10
15
  bcc?: string[];
11
- /** Email subject */
12
- subject?: string;
13
- /** Email text or template rendering data */
14
- body?: string | {
15
- template: string;
16
- data?: any;
17
- };
18
16
  /** Email attachments */
19
17
  attachments?: {
20
18
  filename: string;
21
19
  content: Buffer;
22
20
  }[];
21
+ /** Email body or template */
22
+ body: string | RenderTemplate;
23
23
  };
24
- /** Send Emails */
24
+ /** Send email */
25
25
  export declare class Email extends PathEventEmitter {
26
- private readonly api;
27
- constructor(api: Api | string);
26
+ protected momentum: Momentum;
27
+ constructor(momentum: Momentum);
28
28
  /**
29
- * Send Email
30
- * @param {Mail} email Email to send
31
- * @return {Promise<any>} Response
29
+ * Send an Email
30
+ * @param {Mail} email Email information
31
+ * @return {Promise<any>} SMTP Response
32
32
  */
33
- send(email: Mail): import('@ztimson/utils').PromiseProgress<any>;
33
+ create(email: Mail): import('@ztimson/utils').PromiseProgress<any>;
34
34
  }
35
35
  //# sourceMappingURL=email.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../src/email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAM,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,kBAAkB;AAClB,MAAM,MAAM,IAAI,GAAG;IAClB,2BAA2B;IAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,uBAAuB;IACvB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,uBAAuB;IACvB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,GAAG;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAC,CAAC;IAC/C,wBAAwB;IACxB,WAAW,CAAC,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,EAAE,CAAA;CACnD,CAAA;AAED,kBAAkB;AAClB,qBAAa,KAAM,SAAQ,gBAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAO;gBAEf,GAAG,EAAE,GAAG,GAAG,MAAM;IAK7B;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,IAAI;CAOhB"}
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../src/email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAM,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAE3C,kBAAkB;AAClB,MAAM,MAAM,IAAI,GAAG;IAClB,yBAAyB;IACzB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,wBAAwB;IACxB,WAAW,CAAC,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,EAAE,CAAA;IACnD,6BAA6B;IAC7B,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC;CAC9B,CAAA;AAED,iBAAiB;AACjB,qBAAa,KAAM,SAAQ,gBAAgB;IAC9B,SAAS,CAAC,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ;IAIxC;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,IAAI;CAMlB"}
package/dist/forms.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { Cache, PathEventEmitter } from '@ztimson/utils';
2
- import { Api } from './api';
3
- import { Meta, TreeNode } from './core';
1
+ import { TreeAssetController } from './asset-controller';
2
+ import { Meta } from './core';
3
+ import { Momentum } from './momentum';
4
4
  export type Form<T = any> = Meta & {
5
5
  path: string;
6
6
  collection: string;
@@ -25,15 +25,8 @@ export type Form<T = any> = Meta & {
25
25
  }[];
26
26
  data?: T;
27
27
  };
28
- export declare class Forms extends PathEventEmitter {
29
- readonly api: Api;
30
- cache: Cache<string, Form<any>>;
31
- constructor(api: Api | string);
32
- all(tree?: false): Promise<string[]>;
33
- all(tree: true): Promise<TreeNode<Form>[]>;
34
- all(path: string): Promise<Form>;
35
- delete(key: string): Promise<void>;
36
- read(path: string, reload?: boolean): Promise<Form | null>;
37
- update(form: Form): Promise<Form>;
28
+ export declare class Forms extends TreeAssetController<Form> {
29
+ protected momentum: Momentum;
30
+ constructor(momentum: Momentum);
38
31
  }
39
32
  //# sourceMappingURL=forms.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../src/forms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,gBAAgB,EAAuB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAEtC,MAAM,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,GAAG,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE;YACT,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YACnB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,IAAI,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;QACF,KAAK,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,KAAK,CAAC,EAAE,MAAM,CAAC;SACf,CAAA;KACD,EAAE,CAAC;IACJ,IAAI,CAAC,EAAE,CAAC,CAAC;CACT,CAAA;AAED,qBAAa,KAAM,SAAQ,gBAAgB;IAC1C,QAAQ,CAAC,GAAG,EAAG,GAAG,CAAC;IAEnB,KAAK,2BAAiC;gBAE1B,GAAG,EAAE,GAAG,GAAG,MAAM;IAK7B,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IACpC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,UAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAUtD,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAQjC"}
1
+ {"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../src/forms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,MAAM,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,GAAG,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE;YACT,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YACnB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,IAAI,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;QACF,KAAK,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,KAAK,CAAC,EAAE,MAAM,CAAC;SACf,CAAA;KACD,EAAE,CAAC;IACJ,IAAI,CAAC,EAAE,CAAC,CAAC;CACT,CAAA;AAED,qBAAa,KAAM,SAAQ,mBAAmB,CAAC,IAAI,CAAC;IACvC,SAAS,CAAC,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ;CAGxC"}