@ztimson/momentum 1.5.3 → 1.5.5

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.
@@ -53,6 +53,7 @@ export type AnalyticInfo = Meta & {
53
53
  };
54
54
  /** originating IP */
55
55
  readonly ip?: string;
56
+ /** Anonymous token */
56
57
  /** System language */
57
58
  readonly lang?: string;
58
59
  /** JavaScript heap size */
@@ -84,7 +85,7 @@ export type AnalyticInfo = Meta & {
84
85
  /** Screen resolution */
85
86
  readonly res?: number[];
86
87
  /** IP Trace */
87
- readonly trace?: IpTrace;
88
+ readonly trace?: Omit<IpTrace, 'ip' | 'timezone'>;
88
89
  /** Timezone offset */
89
90
  readonly tz?: string;
90
91
  /** Original user agent string */
@@ -92,53 +93,45 @@ export type AnalyticInfo = Meta & {
92
93
  };
93
94
  export type IpTrace = {
94
95
  /** Ip trace target */
95
- readonly query: string;
96
- /** Trace result */
97
- readonly status: string;
98
- /** Geolocated continent */
99
- readonly continent: string;
100
- /** Geolocated continent shortcode */
101
- readonly continentCode: string;
96
+ readonly ip: string;
97
+ /** Timezone */
98
+ readonly timezone: string;
102
99
  /** Geolocated country */
103
100
  readonly country: string;
104
101
  /** Geolocated country shortcode */
105
- readonly countryCode: string;
106
- /** Geolocated country region shortcode */
107
102
  readonly region: string;
108
- /** Geolocated country region */
109
- readonly regionName: string;
110
103
  /** Geolocated city */
111
104
  readonly city: string;
112
- /** Geolocated city district/suburb */
113
- readonly district: string;
114
105
  /** Geolocated postal code/zip */
115
106
  readonly zip: string;
116
107
  /** Geolocated latitude */
117
108
  readonly lat: number;
118
109
  /** Geolocated longitude */
119
110
  readonly lon: number;
120
- /** Geolocated timezone */
121
- readonly timezone: string;
122
- /** Geolocated timezone offset */
123
- readonly offset: number;
124
- /** Geolocated currency */
125
- readonly currency: string;
111
+ /** Trace accuracy */
112
+ readonly accuracy: number;
126
113
  /** Address provider */
127
114
  readonly isp: string;
128
115
  /** Registered organization */
129
116
  readonly org: string;
130
- /** AS number and organization */
117
+ /** AS Registration */
131
118
  readonly as: string;
132
- /** AS organization */
133
- readonly asname: string;
134
119
  /** Cellular network */
135
120
  readonly mobile: boolean;
136
- /** Known proxy, VPN or Tor exit node */
137
- readonly proxy: boolean;
138
- /** Known Host/Datacenter */
139
- readonly hosting: boolean;
140
- /** Failed trace reason */
141
- readonly message?: string;
121
+ /** Known datacenter */
122
+ readonly datacenter: boolean;
123
+ /** Using TOR network */
124
+ readonly tor: boolean;
125
+ /** Using known VPN */
126
+ readonly vpn: boolean;
127
+ /** Malicious IP */
128
+ readonly naughty: boolean;
129
+ /** Forward Confirmed Reverse DNS */
130
+ readonly fcrdns: boolean;
131
+ /** PTR hostname */
132
+ readonly hostname: string;
133
+ /** Registry Unique ID */
134
+ readonly rdapHandle: string;
142
135
  };
143
136
  /** Analytics metric */
144
137
  export type Metric<T = any> = {
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG;IACjC,wBAAwB;IACxB,QAAQ,CAAC,UAAU,EAAE;QACpB,kEAAkE;QAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,8DAA8D;QAC9D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,8BAA8B;QAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,mDAAmD;QACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,mDAAmD;QACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,EAAE;QACjB,mBAAmB;QACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,sBAAsB;QACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAC1B,4BAA4B;QAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KACvB,CAAC;IACF,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB;IACtB,QAAQ,CAAC,GAAG,EAAE;QACb,uBAAuB;QACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;QAC9B,yBAAyB;QACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACpC,CAAC;IACF,yBAAyB;IACzB,QAAQ,CAAC,MAAM,EAAE;QAChB,mCAAmC;QACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;QACtB,mBAAmB;QACnB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,kBAAkB;QAClB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE;QAChB,qBAAqB;QACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,qBAAqB;QACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KACzB,CAAC;IACF,qBAAqB;IACrB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IAEtB,sBAAsB;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,qBAAqB;IACrB,QAAQ,CAAC,OAAO,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;IAC1C,wCAAwC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,EAAE;QACZ,cAAc;QACd,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB;QACjB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KACzB,CAAC;IACF,mBAAmB;IACnB,QAAQ,CAAC,KAAK,EAAE;QAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;QAAC,SAAS,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAC,EAAE,CAAC;IAC5F,0BAA0B;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,cAAc;IACd,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe;IACf,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC;IAClD,sBAAsB;IACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACrB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yBAAyB;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,wBAAwB;IACxB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,sBAAsB;IACtB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,mBAAmB;IACnB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,mBAAmB;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yBAAyB;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B,CAAA;AAED,uBAAuB;AACvB,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI;IAC7B,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,KAAK,EAAE,CAAC,CAAC;IACT,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;CAC3D,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;CACd,CAAA;AAED,oCAAoC;AACpC,qBAAa,SAAU,SAAQ,eAAe,CAAC,YAAY,CAAC;IA0C/C,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAzCxC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAE1B,OAAO,CAAC,MAAM,CAAC,CAAkB;IACjC,QAAQ,CAAC,KAAK,gBAA+C;IAE7D,OAAO,CAAC,YAAY,CAAuE;IAC3F,WAAW,EAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEnC,OAAO,CAAC,UAAU,CAAC,CAAkB;IACrC,QAAQ,CAAC,SAAS,mBAAsD;IAExE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,OAAO,IACQ,OAAO,GAAG,SAAS,CADC;IACvC,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAarC;IAED,OAAO,CAAC,GAAG,CAAU;IACrB,IAAI,EAAE,IACK,MAAM,CADY;IAC7B,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAKhB;IAED,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,KAAK,GAAG,QAAmC;IAClD,IAAI,GAAG,IADc,OAAO,CACG;gBAET,QAAQ,EAAE,QAAQ;IA8DxC,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,iBAAiB;YA0BX,IAAI;IAiCZ,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM;IAqB9B,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACxD,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAehE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvF,IAAI,CAAC,IAAI,GAAE,MAAsB,EAAE,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAWvE"}
package/dist/auth.d.ts CHANGED
@@ -36,8 +36,8 @@ export declare class Auth extends PathEventEmitter {
36
36
  * 4. Handle redirects/events
37
37
  * @param {boolean | string} reload - Perform redirect (string) or reload (true) on success
38
38
  */
39
- handleLogin(redirect: string): Promise<SessionData | null>;
40
39
  handleLogin(reload?: boolean): Promise<SessionData | null>;
40
+ handleLogin(redirect: string): Promise<SessionData | null>;
41
41
  /**
42
42
  * Check if origin is recognized & whitelisted
43
43
  * @param {string} host Origin to check
@@ -69,8 +69,8 @@ export declare class Auth extends PathEventEmitter {
69
69
  * Logout current user
70
70
  * @param {boolean | string} reload - Perform redirect (string) or reload (true) on logout
71
71
  */
72
- logout(redirect: string): Promise<void>;
73
72
  logout(reload?: boolean): Promise<void>;
73
+ logout(redirect: string): Promise<void>;
74
74
  /**
75
75
  * Create a new user with login
76
76
  * @param {Partial<User> & {password: string}} user User data with password
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -1,5 +1,12 @@
1
1
  import { Momentum } from './momentum';
2
2
  import { PathEventEmitter } from './core';
3
+ export type MetaTag = {
4
+ tag: 'meta';
5
+ attrs: Record<string, string>;
6
+ } | {
7
+ tag: 'link';
8
+ attrs: Record<string, string>;
9
+ };
3
10
  export type Platform = 'windows' | 'android' | 'ios' | 'mac' | 'linux' | 'unknown';
4
11
  export type Theme = {
5
12
  background: string;
@@ -55,6 +62,17 @@ export declare class Client extends PathEventEmitter {
55
62
  get platform(): Platform;
56
63
  get storage(): boolean;
57
64
  constructor(momentum: Momentum);
65
+ /**
66
+ * Build the isomorphic list of SEO/meta/link tags shared by the client (DOM) & server (SSR)
67
+ * @param settings Settings map: title, description, theme, public_url, modules, locale
68
+ * @param opts canonicalPath - adds a <link rel="canonical">; assetBaseUrl - base for favicon/manifest (client uses momentum.url, server uses public_url)
69
+ */
70
+ static metaTags(settings: any, opts?: {
71
+ canonicalPath?: string;
72
+ assetBaseUrl?: string;
73
+ }): MetaTag[];
74
+ /** Render meta tags to an HTML string (SSR) */
75
+ static renderMetaTags(tags: MetaTag[]): string;
58
76
  static theme(setting: any, css: true): string;
59
77
  static theme(setting: any, css?: false): Theme;
60
78
  /**
@@ -65,6 +83,7 @@ export declare class Client extends PathEventEmitter {
65
83
  inject(opts?: {
66
84
  install?: boolean;
67
85
  reload?: boolean;
86
+ canonicalPath?: string;
68
87
  }): Promise<{
69
88
  [key: string]: any;
70
89
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/data.d.ts CHANGED
@@ -94,9 +94,9 @@ export declare class Data extends PathEventEmitter {
94
94
  * @param {DeleteOptions} options Delete options
95
95
  * @return {Promise<number[]>} Array of deleted document IDs
96
96
  */
97
+ delete<T>(collection: string, filter: Filter<T>, options?: DeleteOptions): Promise<number[]>;
97
98
  delete(collection: string, id: number, options?: DeleteOptions): Promise<number[]>;
98
99
  delete(collection: string, ids: number[], options?: DeleteOptions): Promise<number[]>;
99
- delete<T>(collection: string, filter: Filter<T>, options?: DeleteOptions): Promise<number[]>;
100
100
  /**
101
101
  * Execute raw MongoDB query
102
102
  * @param {string} collection Target collection name
@@ -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":"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"}
package/dist/index.js CHANGED
@@ -669,7 +669,7 @@
669
669
  }
670
670
  function dayOfYear(date) {
671
671
  const start = new Date(Date.UTC(date.getUTCFullYear(), 0, 1));
672
- return Math.ceil((date.getTime() - start.getTime()) / (1e3 * 60 * 60 * 24));
672
+ return Math.ceil((date.getTime() - start.getTime()) / 864e5);
673
673
  }
674
674
  function formatDate(format = "YYYY-MM-DD H:mm", date = /* @__PURE__ */ new Date(), tz = "local") {
675
675
  if (typeof date === "number" || typeof date === "string") date = new Date(date);
@@ -1725,10 +1725,11 @@
1725
1725
  on(event, listener) {
1726
1726
  makeArray(event).forEach((e) => {
1727
1727
  let fullEvent;
1728
- if (typeof e === "string") if (e[0] === ":" && this.prefix) fullEvent = `${this.prefix}${e}`;
1729
- else if (this.prefix) fullEvent = `${this.prefix}/${e}`;
1730
- else fullEvent = e;
1731
- else fullEvent = e instanceof PathEvent ? PathEvent.toString(e.fullPath, e.methods) : e;
1728
+ if (typeof e === "string") {
1729
+ if (e[0] === ":" && this.prefix) fullEvent = `${this.prefix}${e}`;
1730
+ else if (this.prefix) fullEvent = `${this.prefix}/${e}`;
1731
+ else fullEvent = e;
1732
+ } else fullEvent = e instanceof PathEvent ? PathEvent.toString(e.fullPath, e.methods) : e;
1732
1733
  this.listeners.push([new PathEvent(fullEvent), listener]);
1733
1734
  });
1734
1735
  return () => this.off(listener);
@@ -2479,7 +2480,7 @@
2479
2480
  if (!date) return true;
2480
2481
  if (date == "true") return false;
2481
2482
  if (typeof date != "object") date = new Date(date);
2482
- return Date.now() - date.getTime() >= 6e4 * 60 * 24 * 30;
2483
+ return Date.now() - date.getTime() >= 2592e6;
2483
2484
  }
2484
2485
  collectNavigationMetrics() {
2485
2486
  return new Promise((res) => {
@@ -2559,7 +2560,7 @@
2559
2560
  async consentPrompt(content) {
2560
2561
  const settings = await this.momentum.settings.map();
2561
2562
  const { close, dialog, result } = createDialog(`
2562
- <div style="margin: 1rem; text-align: center">${content || `<p style="margin: 0;">This website uses cookies to improve your experience. ${settings.privacy_policy_url ? `For more information, please read our <a href="${this.momentum.url}${settings.privacy_policy_url}" target="_blank">Privacy Policy</a>.` : ""}</p>`}</div>
2563
+ <div style="margin: 1rem; text-align: center;">${content || `<p style="margin: 0; color: black;">This website uses cookies to improve your experience. ${settings.privacy_policy_url ? `For more information, please read our <a href="${this.momentum.url}${settings.privacy_policy_url}" target="_blank">Privacy Policy</a>.` : ""}</p>`}</div>
2563
2564
  <div style="display: flex; gap: 10px">
2564
2565
  <button class="agree btn btn-primary" >Agree</button>
2565
2566
  <button class="decline btn">Essential Only</button>
@@ -2582,8 +2583,8 @@
2582
2583
  async speedTest(format = false, bytes) {
2583
2584
  let bps = 0;
2584
2585
  if (!bytes) {
2585
- bps = await this.speedTest(false, 1024 * 1024);
2586
- if (bps > 1024 * 1024 * 10) bps = await this.speedTest(false, 1024 * 1024 * 20);
2586
+ bps = await this.speedTest(false, 1048576);
2587
+ if (bps > 10485760) bps = await this.speedTest(false, 20971520);
2587
2588
  } else {
2588
2589
  const start = performance.now();
2589
2590
  await this.momentum.api.request({ url: `api/tools/dummy-file?size=${bytes}` });
@@ -2646,8 +2647,10 @@
2646
2647
  this._token = token;
2647
2648
  if (this.momentum.opts.credentialsStrategy == "auto" && !this.sameOrigin || this.momentum.opts.credentialsStrategy == "header") {
2648
2649
  this.headers["Authorization"] = this._token ? `Bearer ${this._token}` : null;
2649
- if (this.momentum.opts.persist && typeof localStorage != "undefined") if (this._token) localStorage.setItem(this.storageKey, this._token);
2650
- else localStorage.removeItem(this.storageKey);
2650
+ if (this.momentum.opts.persist && typeof localStorage != "undefined") {
2651
+ if (this._token) localStorage.setItem(this.storageKey, this._token);
2652
+ else localStorage.removeItem(this.storageKey);
2653
+ }
2651
2654
  }
2652
2655
  this.emit(`token:${token ? "c" : "d"}`, this._token);
2653
2656
  }
@@ -2875,7 +2878,7 @@
2875
2878
  s = await this.loginRedirect();
2876
2879
  if (!!s && reload) {
2877
2880
  if (typeof reload == "string") location.href = reload;
2878
- location.reload();
2881
+ else location.reload();
2879
2882
  }
2880
2883
  }
2881
2884
  return this.session || null;
@@ -2950,7 +2953,7 @@
2950
2953
  });
2951
2954
  if (reload) {
2952
2955
  if (typeof reload == "string") location.href = reload;
2953
- location.reload();
2956
+ else location.reload();
2954
2957
  return;
2955
2958
  }
2956
2959
  this.momentum.api.token = this.session = this.user = null;
@@ -3250,7 +3253,7 @@
3250
3253
  });
3251
3254
  /** Check if PWA can be installed */
3252
3255
  get canInstall() {
3253
- return !!this.nativePwaPrompt;
3256
+ return !!this.nativePwaPrompt && !this.isApp && !this.isHeadless;
3254
3257
  }
3255
3258
  /** Running inside a container */
3256
3259
  get isApp() {
@@ -3306,7 +3309,7 @@
3306
3309
  window.addEventListener("beforeinstallprompt", (event) => {
3307
3310
  event.preventDefault();
3308
3311
  this.nativePwaPrompt = event;
3309
- this.emit("install:r");
3312
+ this.emit("install:r", true);
3310
3313
  });
3311
3314
  if (this.storage && sessionStorage.getItem(`${this.momentum.url.host}:speed`)) this.speed = Promise.resolve(+sessionStorage.getItem(`${this.momentum.url.host}:speed`));
3312
3315
  else this.speed = new Promise((res) => {
@@ -3314,6 +3317,66 @@
3314
3317
  });
3315
3318
  }
3316
3319
  }
3320
+ /**
3321
+ * Build the isomorphic list of SEO/meta/link tags shared by the client (DOM) & server (SSR)
3322
+ * @param settings Settings map: title, description, theme, public_url, modules, locale
3323
+ * @param opts canonicalPath - adds a <link rel="canonical">; assetBaseUrl - base for favicon/manifest (client uses momentum.url, server uses public_url)
3324
+ */
3325
+ static metaTags(settings, opts = {}) {
3326
+ const base = settings.public_url;
3327
+ const assetBase = opts.assetBaseUrl ?? base;
3328
+ const banner = `${base}/banner.png?size=1200x630`;
3329
+ const favicon = `${base}/favicon.png`;
3330
+ const assetFavicon = `${assetBase}/favicon.png`;
3331
+ const tags = [];
3332
+ const meta = (key, name, content) => content != null && tags.push({
3333
+ tag: "meta",
3334
+ attrs: {
3335
+ [key]: name,
3336
+ content
3337
+ }
3338
+ });
3339
+ const link = (rel, href) => href && tags.push({
3340
+ tag: "link",
3341
+ attrs: {
3342
+ rel,
3343
+ href
3344
+ }
3345
+ });
3346
+ if (opts.canonicalPath != null) link("canonical", `${base}${opts.canonicalPath.startsWith("/") ? "" : "/"}${opts.canonicalPath}`);
3347
+ meta("name", "author", "Built with Momentum");
3348
+ meta("name", "description", settings.description);
3349
+ meta("name", "theme-color", settings.theme?.background);
3350
+ meta("property", "og:title", settings.title);
3351
+ meta("property", "og:description", settings.description);
3352
+ meta("property", "og:image", banner);
3353
+ meta("property", "og:image:width", "1200");
3354
+ meta("property", "og:image:height", "630");
3355
+ meta("property", "og:image:alt", settings.title);
3356
+ meta("property", "og:logo", `${base}/favicon.png?size=180`);
3357
+ meta("property", "og:url", base);
3358
+ meta("property", "og:site_name", "Momentum");
3359
+ meta("property", "og:type", "website");
3360
+ meta("property", "og:locale", settings.locale || "en_US");
3361
+ meta("name", "twitter:card", "summary_large_image");
3362
+ meta("name", "twitter:title", settings.title);
3363
+ meta("name", "twitter:description", settings.description);
3364
+ meta("name", "twitter:image", banner);
3365
+ link("icon", favicon);
3366
+ link("apple-touch-icon", assetFavicon);
3367
+ if (settings.modules?.pwa) {
3368
+ meta("name", "mobile-web-app-capable", "yes");
3369
+ meta("name", "apple-mobile-web-app-status-bar-style", "default");
3370
+ meta("name", "apple-mobile-web-app-title", settings.title);
3371
+ link("apple-touch-startup-image", assetFavicon);
3372
+ link("manifest", `${assetBase}/manifest.json`);
3373
+ }
3374
+ return tags;
3375
+ }
3376
+ /** Render meta tags to an HTML string (SSR) */
3377
+ static renderMetaTags(tags) {
3378
+ return tags.map((t) => `<${t.tag} ${Object.entries(t.attrs).map(([k, v]) => `${k}="${v}"`).join(" ")}>`).join("\n");
3379
+ }
3317
3380
  static theme(setting, css = false) {
3318
3381
  const t = {
3319
3382
  background: setting?.background,
@@ -3373,14 +3436,6 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
3373
3436
  [k]: v.value
3374
3437
  }), {});
3375
3438
  } else settings = await this.momentum.settings.map(opts.reload);
3376
- const meta = (key, name, value) => {
3377
- const exists = document.querySelector(`meta[${key}="${name}"]`);
3378
- if (value === void 0 || exists) return exists;
3379
- const meta = document.createElement("meta");
3380
- meta.setAttribute(key, name);
3381
- meta.content = value;
3382
- document.head.append(meta);
3383
- };
3384
3439
  document.querySelectorAll(".momentum-logo").forEach((el) => {
3385
3440
  const size = el.src ? /[?&]size="?(.+)(?:"|&|$)/.exec(el.src) : null;
3386
3441
  el.src = `${this.momentum.url.toString()}favicon.png${size ? `?size=${size[1]}` : ""}`;
@@ -3391,35 +3446,35 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
3391
3446
  else if (keys[1] == "contact" && el.tagName == "A") el.href = `mailto:${settings.contact}?subject=${settings.title} - ${document.title.split("|")[0]}`;
3392
3447
  el.innerText = keys[2] ? dotNotation(settings[keys[1]], keys[2]) : settings[keys[1]];
3393
3448
  });
3394
- meta("author", "content", "Built with Momentum");
3395
- meta("name", "description", settings["description"]);
3396
- meta("property", "og:title", settings["title"]);
3397
- meta("property", "og:description", settings["description"]);
3398
- meta("property", "og:image", `${settings["public_url"]}/banner.png?size=1200x630`);
3399
- meta("property", "og:logo", `${settings["public_url"]}/favicon.png?size=180`);
3400
- meta("property", "og:url", settings["public_url"]);
3401
- meta("property", "og:site_name", "Momentum");
3402
- meta("property", "og:type", "website");
3403
- meta("name", "twitter:card", "summary_large_image");
3404
- if (settings.modules?.["pwa"]) {
3405
- meta("name", "mobile-web-app-capable", "yes");
3406
- meta("name", "apple-mobile-web-app-status-bar-style", "default");
3407
- meta("name", "apple-mobile-web-app-title", settings["title"]);
3408
- meta("name", "apple-touch-icon", `${settings["public_url"]}/favicon.png`);
3409
- meta("name", "apple-touch-startup-image", `${settings["public_url"]}/favicon.png`);
3410
- if (!document.querySelector("link[rel=\"manifest\"]")) {
3411
- const link = document.createElement("link");
3412
- link.setAttribute("rel", "manifest");
3413
- link.setAttribute("href", this.momentum.url.toString() + "manifest.json");
3414
- document.head.append(link);
3449
+ Client.metaTags(settings, {
3450
+ canonicalPath: opts.canonicalPath,
3451
+ assetBaseUrl: this.momentum.url.toString().replace(/\/$/, "")
3452
+ }).forEach((t) => {
3453
+ if (t.tag == "meta") {
3454
+ const key = t.attrs.name ? "name" : "property";
3455
+ const name = t.attrs[key];
3456
+ let el = document.querySelector(`meta[${key}="${name}"]`);
3457
+ if (!el) {
3458
+ el = document.createElement("meta");
3459
+ el.setAttribute(key, name);
3460
+ document.head.append(el);
3461
+ }
3462
+ el.setAttribute("content", t.attrs.content);
3463
+ } else {
3464
+ let el = document.querySelector(`link[rel="${t.attrs.rel}"]`);
3465
+ if (!el) {
3466
+ el = document.createElement("link");
3467
+ el.setAttribute("rel", t.attrs.rel);
3468
+ document.head.append(el);
3469
+ }
3470
+ el.setAttribute("href", t.attrs.href);
3415
3471
  }
3416
- if (opts.install !== false && !this.installTimeout && !this.isApp && !this.isHeadless) this.installTimeout = setTimeout(async () => {
3417
- this.installTimeout = null;
3418
- const dismissed = localStorage.getItem(`momentum:install`);
3419
- if (!dismissed || dismissed != "true" && Date.now() - new Date(dismissed).getTime() > 6e4 * 60 * 24 * this.momentum.opts.installPrompt.retry) this.install();
3420
- }, 6e4 * this.momentum.opts.installPrompt.delay);
3421
- }
3422
- meta("name", "theme-color", settings["theme"]?.background);
3472
+ });
3473
+ if (settings.modules?.["pwa"] && opts.install !== false && !this.installTimeout && this.canInstall) this.installTimeout = setTimeout(async () => {
3474
+ this.installTimeout = null;
3475
+ const dismissed = localStorage.getItem(`momentum:install`);
3476
+ if (!dismissed || dismissed != "true" && Date.now() - new Date(dismissed).getTime() > 864e5 * this.momentum.opts.installPrompt.retry) this.install();
3477
+ }, 6e4 * this.momentum.opts.installPrompt.delay);
3423
3478
  if (!document.body.classList.contains("theme-manual")) {
3424
3479
  document.body.classList.add(settings["theme"]?.darkMode ? "theme-dark" : "theme-light");
3425
3480
  document.body.classList.remove(!settings["theme"]?.darkMode ? "theme-dark" : "theme-light");
@@ -3626,9 +3681,10 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
3626
3681
  }
3627
3682
  }).then((resp) => {
3628
3683
  if (!resp) return null;
3629
- if (Array.isArray(resp)) if (!q && !options?.limit) this.emit(PES`data/${collection}:r`, collection, resp);
3630
- else resp.forEach((r) => this.emit(PES`data/${collection}/${r._id}:r`, collection, resp));
3631
- else this.emit(PES`data/${collection}/${resp._id}:r`, collection, resp);
3684
+ if (Array.isArray(resp)) {
3685
+ if (!q && !options?.limit) this.emit(PES`data/${collection}:r`, collection, resp);
3686
+ else resp.forEach((r) => this.emit(PES`data/${collection}/${r._id}:r`, collection, resp));
3687
+ } else this.emit(PES`data/${collection}/${resp._id}:r`, collection, resp);
3632
3688
  return resp;
3633
3689
  });
3634
3690
  }
@@ -3818,12 +3874,13 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
3818
3874
  if (typeof window != "undefined") window.addEventListener("unhandledrejection", async (event) => {
3819
3875
  let log = event.reason?.stack || event.reason;
3820
3876
  if (event.reason?.url) log = `${event.reason.method} ${event.reason.url} -> ${event.reason.code}\n\n${log}`;
3821
- if (event.reason?.code == null || event.reason?.code >= 500) if (LOG_LEVEL[this.logLevel] >= 0) this.error(log);
3822
- else {
3823
- this.logs.push(this.buildLog(LOG_LEVEL.ERROR, log));
3824
- this.emit(`local/error:c`, this.logs);
3825
- }
3826
- else if (LOG_LEVEL[this.logLevel] >= 1) this.warn(log);
3877
+ if (event.reason?.code == null || event.reason?.code >= 500) {
3878
+ if (LOG_LEVEL[this.logLevel] >= 0) this.error(log);
3879
+ else {
3880
+ this.logs.push(this.buildLog(LOG_LEVEL.ERROR, log));
3881
+ this.emit(`local/error:c`, this.logs);
3882
+ }
3883
+ } else if (LOG_LEVEL[this.logLevel] >= 1) this.warn(log);
3827
3884
  else {
3828
3885
  this.logs.push(this.buildLog(LOG_LEVEL.WARN, log));
3829
3886
  this.emit(`local/warn:c`, this.logs);
@@ -4186,7 +4243,7 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
4186
4243
  */
4187
4244
  getToken(id) {
4188
4245
  return this.momentum.api.request({
4189
- url: `api/transactions/init/${id || ""}`,
4246
+ url: this.momentum.url.origin + `/api/transactions/init/${id || ""}`,
4190
4247
  method: "POST"
4191
4248
  }).then((resp) => resp.token);
4192
4249
  }
@@ -4255,7 +4312,7 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
4255
4312
  * @returns {string} URL
4256
4313
  */
4257
4314
  checkoutUrl(id) {
4258
- return encodeURI(`${this.momentum.opts.checkoutUrl}?token=${id}`);
4315
+ return encodeURI(`${this.momentum.opts.checkoutUrl}?transaction=${id}`);
4259
4316
  }
4260
4317
  async delete(key) {
4261
4318
  throw new Error("Not supported");
@@ -4565,8 +4622,10 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
4565
4622
  this.cache.values().forEach((meta) => {
4566
4623
  if (meta?.children && event.path == meta.path) meta.children = [...meta.children.filter((c) => c.path != event.name), payload.name];
4567
4624
  });
4568
- } else if (event.delete || payload == null) if (!event.path) return this.cache.clear();
4569
- else this.cache.delete(event.path);
4625
+ } else if (event.delete || payload == null) {
4626
+ if (!event.path) return this.cache.clear();
4627
+ else this.cache.delete(event.path);
4628
+ }
4570
4629
  });
4571
4630
  }
4572
4631
  /**
@@ -4893,7 +4952,7 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
4893
4952
  };
4894
4953
  //#endregion
4895
4954
  //#region package.json
4896
- var version = "1.5.3";
4955
+ var version = "1.5.5";
4897
4956
  //#endregion
4898
4957
  //#region src/webRtc.ts
4899
4958
  var WebRtc = class extends PathEventEmitter {
package/dist/index.mjs CHANGED
@@ -665,7 +665,7 @@ function dayOfWeek(d) {
665
665
  }
666
666
  function dayOfYear(date) {
667
667
  const start = new Date(Date.UTC(date.getUTCFullYear(), 0, 1));
668
- return Math.ceil((date.getTime() - start.getTime()) / (1e3 * 60 * 60 * 24));
668
+ return Math.ceil((date.getTime() - start.getTime()) / 864e5);
669
669
  }
670
670
  function formatDate(format = "YYYY-MM-DD H:mm", date = /* @__PURE__ */ new Date(), tz = "local") {
671
671
  if (typeof date === "number" || typeof date === "string") date = new Date(date);
@@ -1721,10 +1721,11 @@ var PathEventEmitter = class {
1721
1721
  on(event, listener) {
1722
1722
  makeArray(event).forEach((e) => {
1723
1723
  let fullEvent;
1724
- if (typeof e === "string") if (e[0] === ":" && this.prefix) fullEvent = `${this.prefix}${e}`;
1725
- else if (this.prefix) fullEvent = `${this.prefix}/${e}`;
1726
- else fullEvent = e;
1727
- else fullEvent = e instanceof PathEvent ? PathEvent.toString(e.fullPath, e.methods) : e;
1724
+ if (typeof e === "string") {
1725
+ if (e[0] === ":" && this.prefix) fullEvent = `${this.prefix}${e}`;
1726
+ else if (this.prefix) fullEvent = `${this.prefix}/${e}`;
1727
+ else fullEvent = e;
1728
+ } else fullEvent = e instanceof PathEvent ? PathEvent.toString(e.fullPath, e.methods) : e;
1728
1729
  this.listeners.push([new PathEvent(fullEvent), listener]);
1729
1730
  });
1730
1731
  return () => this.off(listener);
@@ -2475,7 +2476,7 @@ var Analytics = class extends AssetController {
2475
2476
  if (!date) return true;
2476
2477
  if (date == "true") return false;
2477
2478
  if (typeof date != "object") date = new Date(date);
2478
- return Date.now() - date.getTime() >= 6e4 * 60 * 24 * 30;
2479
+ return Date.now() - date.getTime() >= 2592e6;
2479
2480
  }
2480
2481
  collectNavigationMetrics() {
2481
2482
  return new Promise((res) => {
@@ -2555,7 +2556,7 @@ var Analytics = class extends AssetController {
2555
2556
  async consentPrompt(content) {
2556
2557
  const settings = await this.momentum.settings.map();
2557
2558
  const { close, dialog, result } = createDialog(`
2558
- <div style="margin: 1rem; text-align: center">${content || `<p style="margin: 0;">This website uses cookies to improve your experience. ${settings.privacy_policy_url ? `For more information, please read our <a href="${this.momentum.url}${settings.privacy_policy_url}" target="_blank">Privacy Policy</a>.` : ""}</p>`}</div>
2559
+ <div style="margin: 1rem; text-align: center;">${content || `<p style="margin: 0; color: black;">This website uses cookies to improve your experience. ${settings.privacy_policy_url ? `For more information, please read our <a href="${this.momentum.url}${settings.privacy_policy_url}" target="_blank">Privacy Policy</a>.` : ""}</p>`}</div>
2559
2560
  <div style="display: flex; gap: 10px">
2560
2561
  <button class="agree btn btn-primary" >Agree</button>
2561
2562
  <button class="decline btn">Essential Only</button>
@@ -2578,8 +2579,8 @@ var Analytics = class extends AssetController {
2578
2579
  async speedTest(format = false, bytes) {
2579
2580
  let bps = 0;
2580
2581
  if (!bytes) {
2581
- bps = await this.speedTest(false, 1024 * 1024);
2582
- if (bps > 1024 * 1024 * 10) bps = await this.speedTest(false, 1024 * 1024 * 20);
2582
+ bps = await this.speedTest(false, 1048576);
2583
+ if (bps > 10485760) bps = await this.speedTest(false, 20971520);
2583
2584
  } else {
2584
2585
  const start = performance.now();
2585
2586
  await this.momentum.api.request({ url: `api/tools/dummy-file?size=${bytes}` });
@@ -2642,8 +2643,10 @@ var Api = class extends Http {
2642
2643
  this._token = token;
2643
2644
  if (this.momentum.opts.credentialsStrategy == "auto" && !this.sameOrigin || this.momentum.opts.credentialsStrategy == "header") {
2644
2645
  this.headers["Authorization"] = this._token ? `Bearer ${this._token}` : null;
2645
- if (this.momentum.opts.persist && typeof localStorage != "undefined") if (this._token) localStorage.setItem(this.storageKey, this._token);
2646
- else localStorage.removeItem(this.storageKey);
2646
+ if (this.momentum.opts.persist && typeof localStorage != "undefined") {
2647
+ if (this._token) localStorage.setItem(this.storageKey, this._token);
2648
+ else localStorage.removeItem(this.storageKey);
2649
+ }
2647
2650
  }
2648
2651
  this.emit(`token:${token ? "c" : "d"}`, this._token);
2649
2652
  }
@@ -2871,7 +2874,7 @@ var Auth = class extends PathEventEmitter {
2871
2874
  s = await this.loginRedirect();
2872
2875
  if (!!s && reload) {
2873
2876
  if (typeof reload == "string") location.href = reload;
2874
- location.reload();
2877
+ else location.reload();
2875
2878
  }
2876
2879
  }
2877
2880
  return this.session || null;
@@ -2946,7 +2949,7 @@ var Auth = class extends PathEventEmitter {
2946
2949
  });
2947
2950
  if (reload) {
2948
2951
  if (typeof reload == "string") location.href = reload;
2949
- location.reload();
2952
+ else location.reload();
2950
2953
  return;
2951
2954
  }
2952
2955
  this.momentum.api.token = this.session = this.user = null;
@@ -3246,7 +3249,7 @@ var Client = class Client extends PathEventEmitter {
3246
3249
  });
3247
3250
  /** Check if PWA can be installed */
3248
3251
  get canInstall() {
3249
- return !!this.nativePwaPrompt;
3252
+ return !!this.nativePwaPrompt && !this.isApp && !this.isHeadless;
3250
3253
  }
3251
3254
  /** Running inside a container */
3252
3255
  get isApp() {
@@ -3302,7 +3305,7 @@ var Client = class Client extends PathEventEmitter {
3302
3305
  window.addEventListener("beforeinstallprompt", (event) => {
3303
3306
  event.preventDefault();
3304
3307
  this.nativePwaPrompt = event;
3305
- this.emit("install:r");
3308
+ this.emit("install:r", true);
3306
3309
  });
3307
3310
  if (this.storage && sessionStorage.getItem(`${this.momentum.url.host}:speed`)) this.speed = Promise.resolve(+sessionStorage.getItem(`${this.momentum.url.host}:speed`));
3308
3311
  else this.speed = new Promise((res) => {
@@ -3310,6 +3313,66 @@ var Client = class Client extends PathEventEmitter {
3310
3313
  });
3311
3314
  }
3312
3315
  }
3316
+ /**
3317
+ * Build the isomorphic list of SEO/meta/link tags shared by the client (DOM) & server (SSR)
3318
+ * @param settings Settings map: title, description, theme, public_url, modules, locale
3319
+ * @param opts canonicalPath - adds a <link rel="canonical">; assetBaseUrl - base for favicon/manifest (client uses momentum.url, server uses public_url)
3320
+ */
3321
+ static metaTags(settings, opts = {}) {
3322
+ const base = settings.public_url;
3323
+ const assetBase = opts.assetBaseUrl ?? base;
3324
+ const banner = `${base}/banner.png?size=1200x630`;
3325
+ const favicon = `${base}/favicon.png`;
3326
+ const assetFavicon = `${assetBase}/favicon.png`;
3327
+ const tags = [];
3328
+ const meta = (key, name, content) => content != null && tags.push({
3329
+ tag: "meta",
3330
+ attrs: {
3331
+ [key]: name,
3332
+ content
3333
+ }
3334
+ });
3335
+ const link = (rel, href) => href && tags.push({
3336
+ tag: "link",
3337
+ attrs: {
3338
+ rel,
3339
+ href
3340
+ }
3341
+ });
3342
+ if (opts.canonicalPath != null) link("canonical", `${base}${opts.canonicalPath.startsWith("/") ? "" : "/"}${opts.canonicalPath}`);
3343
+ meta("name", "author", "Built with Momentum");
3344
+ meta("name", "description", settings.description);
3345
+ meta("name", "theme-color", settings.theme?.background);
3346
+ meta("property", "og:title", settings.title);
3347
+ meta("property", "og:description", settings.description);
3348
+ meta("property", "og:image", banner);
3349
+ meta("property", "og:image:width", "1200");
3350
+ meta("property", "og:image:height", "630");
3351
+ meta("property", "og:image:alt", settings.title);
3352
+ meta("property", "og:logo", `${base}/favicon.png?size=180`);
3353
+ meta("property", "og:url", base);
3354
+ meta("property", "og:site_name", "Momentum");
3355
+ meta("property", "og:type", "website");
3356
+ meta("property", "og:locale", settings.locale || "en_US");
3357
+ meta("name", "twitter:card", "summary_large_image");
3358
+ meta("name", "twitter:title", settings.title);
3359
+ meta("name", "twitter:description", settings.description);
3360
+ meta("name", "twitter:image", banner);
3361
+ link("icon", favicon);
3362
+ link("apple-touch-icon", assetFavicon);
3363
+ if (settings.modules?.pwa) {
3364
+ meta("name", "mobile-web-app-capable", "yes");
3365
+ meta("name", "apple-mobile-web-app-status-bar-style", "default");
3366
+ meta("name", "apple-mobile-web-app-title", settings.title);
3367
+ link("apple-touch-startup-image", assetFavicon);
3368
+ link("manifest", `${assetBase}/manifest.json`);
3369
+ }
3370
+ return tags;
3371
+ }
3372
+ /** Render meta tags to an HTML string (SSR) */
3373
+ static renderMetaTags(tags) {
3374
+ return tags.map((t) => `<${t.tag} ${Object.entries(t.attrs).map(([k, v]) => `${k}="${v}"`).join(" ")}>`).join("\n");
3375
+ }
3313
3376
  static theme(setting, css = false) {
3314
3377
  const t = {
3315
3378
  background: setting?.background,
@@ -3369,14 +3432,6 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
3369
3432
  [k]: v.value
3370
3433
  }), {});
3371
3434
  } else settings = await this.momentum.settings.map(opts.reload);
3372
- const meta = (key, name, value) => {
3373
- const exists = document.querySelector(`meta[${key}="${name}"]`);
3374
- if (value === void 0 || exists) return exists;
3375
- const meta = document.createElement("meta");
3376
- meta.setAttribute(key, name);
3377
- meta.content = value;
3378
- document.head.append(meta);
3379
- };
3380
3435
  document.querySelectorAll(".momentum-logo").forEach((el) => {
3381
3436
  const size = el.src ? /[?&]size="?(.+)(?:"|&|$)/.exec(el.src) : null;
3382
3437
  el.src = `${this.momentum.url.toString()}favicon.png${size ? `?size=${size[1]}` : ""}`;
@@ -3387,35 +3442,35 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
3387
3442
  else if (keys[1] == "contact" && el.tagName == "A") el.href = `mailto:${settings.contact}?subject=${settings.title} - ${document.title.split("|")[0]}`;
3388
3443
  el.innerText = keys[2] ? dotNotation(settings[keys[1]], keys[2]) : settings[keys[1]];
3389
3444
  });
3390
- meta("author", "content", "Built with Momentum");
3391
- meta("name", "description", settings["description"]);
3392
- meta("property", "og:title", settings["title"]);
3393
- meta("property", "og:description", settings["description"]);
3394
- meta("property", "og:image", `${settings["public_url"]}/banner.png?size=1200x630`);
3395
- meta("property", "og:logo", `${settings["public_url"]}/favicon.png?size=180`);
3396
- meta("property", "og:url", settings["public_url"]);
3397
- meta("property", "og:site_name", "Momentum");
3398
- meta("property", "og:type", "website");
3399
- meta("name", "twitter:card", "summary_large_image");
3400
- if (settings.modules?.["pwa"]) {
3401
- meta("name", "mobile-web-app-capable", "yes");
3402
- meta("name", "apple-mobile-web-app-status-bar-style", "default");
3403
- meta("name", "apple-mobile-web-app-title", settings["title"]);
3404
- meta("name", "apple-touch-icon", `${settings["public_url"]}/favicon.png`);
3405
- meta("name", "apple-touch-startup-image", `${settings["public_url"]}/favicon.png`);
3406
- if (!document.querySelector("link[rel=\"manifest\"]")) {
3407
- const link = document.createElement("link");
3408
- link.setAttribute("rel", "manifest");
3409
- link.setAttribute("href", this.momentum.url.toString() + "manifest.json");
3410
- document.head.append(link);
3445
+ Client.metaTags(settings, {
3446
+ canonicalPath: opts.canonicalPath,
3447
+ assetBaseUrl: this.momentum.url.toString().replace(/\/$/, "")
3448
+ }).forEach((t) => {
3449
+ if (t.tag == "meta") {
3450
+ const key = t.attrs.name ? "name" : "property";
3451
+ const name = t.attrs[key];
3452
+ let el = document.querySelector(`meta[${key}="${name}"]`);
3453
+ if (!el) {
3454
+ el = document.createElement("meta");
3455
+ el.setAttribute(key, name);
3456
+ document.head.append(el);
3457
+ }
3458
+ el.setAttribute("content", t.attrs.content);
3459
+ } else {
3460
+ let el = document.querySelector(`link[rel="${t.attrs.rel}"]`);
3461
+ if (!el) {
3462
+ el = document.createElement("link");
3463
+ el.setAttribute("rel", t.attrs.rel);
3464
+ document.head.append(el);
3465
+ }
3466
+ el.setAttribute("href", t.attrs.href);
3411
3467
  }
3412
- if (opts.install !== false && !this.installTimeout && !this.isApp && !this.isHeadless) this.installTimeout = setTimeout(async () => {
3413
- this.installTimeout = null;
3414
- const dismissed = localStorage.getItem(`momentum:install`);
3415
- if (!dismissed || dismissed != "true" && Date.now() - new Date(dismissed).getTime() > 6e4 * 60 * 24 * this.momentum.opts.installPrompt.retry) this.install();
3416
- }, 6e4 * this.momentum.opts.installPrompt.delay);
3417
- }
3418
- meta("name", "theme-color", settings["theme"]?.background);
3468
+ });
3469
+ if (settings.modules?.["pwa"] && opts.install !== false && !this.installTimeout && this.canInstall) this.installTimeout = setTimeout(async () => {
3470
+ this.installTimeout = null;
3471
+ const dismissed = localStorage.getItem(`momentum:install`);
3472
+ if (!dismissed || dismissed != "true" && Date.now() - new Date(dismissed).getTime() > 864e5 * this.momentum.opts.installPrompt.retry) this.install();
3473
+ }, 6e4 * this.momentum.opts.installPrompt.delay);
3419
3474
  if (!document.body.classList.contains("theme-manual")) {
3420
3475
  document.body.classList.add(settings["theme"]?.darkMode ? "theme-dark" : "theme-light");
3421
3476
  document.body.classList.remove(!settings["theme"]?.darkMode ? "theme-dark" : "theme-light");
@@ -3622,9 +3677,10 @@ var Data = class extends PathEventEmitter {
3622
3677
  }
3623
3678
  }).then((resp) => {
3624
3679
  if (!resp) return null;
3625
- if (Array.isArray(resp)) if (!q && !options?.limit) this.emit(PES`data/${collection}:r`, collection, resp);
3626
- else resp.forEach((r) => this.emit(PES`data/${collection}/${r._id}:r`, collection, resp));
3627
- else this.emit(PES`data/${collection}/${resp._id}:r`, collection, resp);
3680
+ if (Array.isArray(resp)) {
3681
+ if (!q && !options?.limit) this.emit(PES`data/${collection}:r`, collection, resp);
3682
+ else resp.forEach((r) => this.emit(PES`data/${collection}/${r._id}:r`, collection, resp));
3683
+ } else this.emit(PES`data/${collection}/${resp._id}:r`, collection, resp);
3628
3684
  return resp;
3629
3685
  });
3630
3686
  }
@@ -3814,12 +3870,13 @@ var Logger = class Logger extends PathEventEmitter {
3814
3870
  if (typeof window != "undefined") window.addEventListener("unhandledrejection", async (event) => {
3815
3871
  let log = event.reason?.stack || event.reason;
3816
3872
  if (event.reason?.url) log = `${event.reason.method} ${event.reason.url} -> ${event.reason.code}\n\n${log}`;
3817
- if (event.reason?.code == null || event.reason?.code >= 500) if (LOG_LEVEL[this.logLevel] >= 0) this.error(log);
3818
- else {
3819
- this.logs.push(this.buildLog(LOG_LEVEL.ERROR, log));
3820
- this.emit(`local/error:c`, this.logs);
3821
- }
3822
- else if (LOG_LEVEL[this.logLevel] >= 1) this.warn(log);
3873
+ if (event.reason?.code == null || event.reason?.code >= 500) {
3874
+ if (LOG_LEVEL[this.logLevel] >= 0) this.error(log);
3875
+ else {
3876
+ this.logs.push(this.buildLog(LOG_LEVEL.ERROR, log));
3877
+ this.emit(`local/error:c`, this.logs);
3878
+ }
3879
+ } else if (LOG_LEVEL[this.logLevel] >= 1) this.warn(log);
3823
3880
  else {
3824
3881
  this.logs.push(this.buildLog(LOG_LEVEL.WARN, log));
3825
3882
  this.emit(`local/warn:c`, this.logs);
@@ -4182,7 +4239,7 @@ var Transactions = class extends AssetController {
4182
4239
  */
4183
4240
  getToken(id) {
4184
4241
  return this.momentum.api.request({
4185
- url: `api/transactions/init/${id || ""}`,
4242
+ url: this.momentum.url.origin + `/api/transactions/init/${id || ""}`,
4186
4243
  method: "POST"
4187
4244
  }).then((resp) => resp.token);
4188
4245
  }
@@ -4251,7 +4308,7 @@ var Transactions = class extends AssetController {
4251
4308
  * @returns {string} URL
4252
4309
  */
4253
4310
  checkoutUrl(id) {
4254
- return encodeURI(`${this.momentum.opts.checkoutUrl}?token=${id}`);
4311
+ return encodeURI(`${this.momentum.opts.checkoutUrl}?transaction=${id}`);
4255
4312
  }
4256
4313
  async delete(key) {
4257
4314
  throw new Error("Not supported");
@@ -4561,8 +4618,10 @@ var Storage = class extends PathEventEmitter {
4561
4618
  this.cache.values().forEach((meta) => {
4562
4619
  if (meta?.children && event.path == meta.path) meta.children = [...meta.children.filter((c) => c.path != event.name), payload.name];
4563
4620
  });
4564
- } else if (event.delete || payload == null) if (!event.path) return this.cache.clear();
4565
- else this.cache.delete(event.path);
4621
+ } else if (event.delete || payload == null) {
4622
+ if (!event.path) return this.cache.clear();
4623
+ else this.cache.delete(event.path);
4624
+ }
4566
4625
  });
4567
4626
  }
4568
4627
  /**
@@ -4889,7 +4948,7 @@ var Static = class extends Storage {
4889
4948
  };
4890
4949
  //#endregion
4891
4950
  //#region package.json
4892
- var version = "1.5.3";
4951
+ var version = "1.5.5";
4893
4952
  //#endregion
4894
4953
  //#region src/webRtc.ts
4895
4954
  var WebRtc = class extends PathEventEmitter {
@@ -1,11 +1,12 @@
1
1
  import {Momentum} from '/momentum.mjs';
2
2
 
3
- (async () => {
4
- let analyticsId = null;
5
- const production = self.location.origin !== 'http://localhost:5173';
6
- const apiUrl = production ? self.location.origin : 'http://localhost:3000';
3
+ let analyticsId = null;
4
+ const production = self.location.origin !== 'http://localhost:5173';
5
+ const apiUrl = production ? self.location.origin : 'http://localhost:3000';
6
+ const cache = caches.open(apiUrl);
7
7
 
8
- // Restore analytics ID from cache before creating Momentum
8
+ let momentum;
9
+ const ready = (async () => {
9
10
  try {
10
11
  const analyticsCache = await caches.open('analytics-cache');
11
12
  const res = await analyticsCache.match('analytics-id');
@@ -14,77 +15,43 @@ import {Momentum} from '/momentum.mjs';
14
15
  console.warn('Failed to restore analytics ID:', err);
15
16
  }
16
17
 
17
- const cache = caches.open(apiUrl);
18
- const momentum = new Momentum(apiUrl, {
18
+ momentum = new Momentum(apiUrl, {
19
19
  analytics: analyticsId || false,
20
20
  banner: false,
21
21
  offline: true,
22
22
  socket: true,
23
23
  worker: false,
24
24
  });
25
+ })();
25
26
 
26
- async function reloadClients() {
27
- const allClients = await self.clients.matchAll({ type: 'window', includeUncontrolled: true });
28
- for (const client of allClients) {
29
- client.postMessage({ update: true });
30
- }
31
- }
32
-
33
- async function update() {
34
- const c = await cache;
35
- let files = await momentum.static.all();
36
- // files.map(meta => momentum.static.open(meta.path, false));
37
- // for (const file of files) {
38
- // const req = new Request(file.path, {cache: 'no-cache'});
39
- // try {
40
- // const res = await fetch(req);
41
- // if (res.ok) await c.put(req, res);
42
- // else throw new Error();
43
- // } catch (err) {
44
- // await c.delete(req);
45
- // }
46
- // }
47
- }
27
+ async function reloadClients() {
28
+ const allClients = await self.clients.matchAll({type: 'window', includeUncontrolled: true});
29
+ for (const client of allClients) client.postMessage({update: true});
30
+ }
48
31
 
49
- self.addEventListener('install', e => e.waitUntil(update()));
32
+ async function update() {
33
+ await ready;
34
+ const c = await cache;
35
+ let files = await momentum.static.all();
36
+ // files.map(meta => momentum.static.open(meta.path, false));
37
+ }
50
38
 
51
- self.addEventListener('periodicsync', e => e.waitUntil(update()));
39
+ self.addEventListener('install', e => e.waitUntil(update()));
52
40
 
53
- self.addEventListener('activate', e => {
54
- e.waitUntil((async () => {
55
- await self.clients.claim();
56
- await reloadClients();
57
- })());
58
- });
41
+ self.addEventListener('periodicsync', e => e.waitUntil(update()));
59
42
 
60
- // self.addEventListener('fetch', (event) => {
61
- // const req = event.request;
62
- // // Only cache static momentum assets
63
- // if(!req.url.startsWith(momentum.url.origin) || req.url.startsWith(momentum.url.origin + 'api') || req.method !== 'GET') return;
64
- //
65
- // event.respondWith((async () => {
66
- // const c = await cache;
67
- // if(!self.navigator.onLine) {
68
- // const cachedResponse = await c.match(req);
69
- // if(cachedResponse) return cachedResponse;
70
- // return new Response('You are offline', {status: 503, statusText: 'Service Unavailable'});
71
- // }
72
- // try {
73
- // const response = await fetch(req);
74
- // if(response.ok) await c.put(req, response.clone());
75
- // else if(response.status === 404) await c.delete(req);
76
- // return response;
77
- // } catch (err) {
78
- // const cachedResponse = await c.match(req);
79
- // if(cachedResponse) return cachedResponse;
80
- // throw err;
81
- // }
82
- // })());
83
- // });
43
+ self.addEventListener('activate', e => {
44
+ e.waitUntil((async () => {
45
+ await self.clients.claim();
46
+ await reloadClients();
47
+ })());
48
+ });
84
49
 
85
- self.addEventListener('message', async (event) => {
50
+ self.addEventListener('message', (event) => {
51
+ event.waitUntil?.((async () => {
52
+ await ready;
86
53
  if (event.data?.analyticsId) {
87
- momentum.analytics.id = event.data?.analyticsId
54
+ momentum.analytics.id = event.data?.analyticsId;
88
55
  try {
89
56
  const analyticsCache = await caches.open('analytics-cache');
90
57
  await analyticsCache.put('analytics-id', new Response(JSON.stringify({id: event.data?.analyticsId})));
@@ -94,31 +61,28 @@ import {Momentum} from '/momentum.mjs';
94
61
  } else if (event.data?.skipWaiting) {
95
62
  await self.skipWaiting();
96
63
  } else if (event.data?.update) {
97
- if (self.registration.waiting) {
98
- self.registration.waiting.postMessage({skipWaiting: true});
99
- } else {
100
- await reloadClients();
101
- }
64
+ if (self.registration.waiting) self.registration.waiting.postMessage({skipWaiting: true});
65
+ else await reloadClients();
102
66
  }
103
- });
67
+ })());
68
+ });
104
69
 
105
- self.addEventListener('notificationclick', (event) => {
106
- const data = event.notification.data;
107
- event.notification.close();
108
- if(data && data.link) event.waitUntil(clients.openWindow(data.link));
109
- });
70
+ self.addEventListener('notificationclick', (event) => {
71
+ const data = event.notification.data;
72
+ event.notification.close();
73
+ if(data && data.link) event.waitUntil(clients.openWindow(data.link));
74
+ });
110
75
 
111
- self.addEventListener('push', async (event) => {
112
- let data;
113
- try { data = event.data?.json() ?? {}; }
114
- catch { data = {message: event.data?.text()}; }
115
- event.waitUntil(
116
- self.registration.showNotification(data.title || `Momentum Alert`, {
117
- body: data.message || '',
118
- tag: data.title || 'general',
119
- icon: data.icon || `${self.location.origin}/favicon.ico`,
120
- data
121
- })
122
- );
123
- });
124
- })();
76
+ self.addEventListener('push', (event) => {
77
+ let data;
78
+ try { data = event.data?.json() ?? {}; }
79
+ catch { data = {message: event.data?.text()}; }
80
+ event.waitUntil(
81
+ self.registration.showNotification(data.title || `Momentum Alert`, {
82
+ body: data.message || '',
83
+ tag: data.title || 'general',
84
+ icon: data.icon || `${self.location.origin}/favicon.ico`,
85
+ data
86
+ })
87
+ );
88
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,gBAAgB,EAAM,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,wBAAwB;AACxB,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG;IACpC,4CAA4C;IAC5C,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9B,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,CAAA;AAED,oBAAoB;AACpB,qBAAa,aAAc,SAAQ,gBAAgB;IAetC,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAdxC,OAAO,CAAC,QAAQ,CAAS;IACzB,gCAAgC;IAChC,IAAI,OAAO,IAAI,OAAO,CAA0B;IAChD,OAAO,KAAK,OAAO,QAGlB;IAED,iCAAiC;IACjC,IAAI,YAAY,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAGnD;gBAEqB,QAAQ,EAAE,QAAQ;IAKxC;;;;OAIG;IACH,MAAM,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAa7B"}
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,gBAAgB,EAAM,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,wBAAwB;AACxB,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG;IACpC,4CAA4C;IAC5C,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9B,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,CAAA;AAED,oBAAoB;AACpB,qBAAa,aAAc,SAAQ,gBAAgB;IAetC,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAdxC,OAAO,CAAC,QAAQ,CAAS;IACzB,gCAAgC;IAChC,IAAI,OAAO,IAAI,OAAO,CAA0B;IAChD,OAAO,KAAK,OAAO,QAGlB;IAED,iCAAiC;IACjC,IAAI,YAAY,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAGnD;gBAEqB,QAAQ,EAAE,QAAQ;IAKxC;;;;OAIG;IACH,MAAM,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
package/dist/routes.d.ts CHANGED
@@ -10,11 +10,16 @@ export type RateLimit = Meta & {
10
10
  match: {
11
11
  path: string | null;
12
12
  cidr: string | null;
13
+ datacenter: boolean;
14
+ malicious: boolean;
15
+ tor: boolean;
16
+ vpn: boolean;
13
17
  };
14
18
  required: {
15
19
  cidr: string | null;
16
20
  groups: string[];
17
21
  captcha: number | null;
22
+ captchaOp: '>' | '<';
18
23
  };
19
24
  limit: {
20
25
  ip: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG;IAC9B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE;QACN,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE;QACT,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAA;IACD,KAAK,EAAE;QACN,EAAE,EAAE,OAAO,CAAC;QACZ,IAAI,EAAE,OAAO,CAAC;QACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACrB,CAAA;CACD,CAAA;AAED,qBAAa,SAAU,SAAQ,eAAe,CAAC,WAAW,CAAC;IAC9C,SAAS,CAAC,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ;IAIlC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;CAGhE;AAED,qBAAa,WAAY,SAAQ,eAAe,CAAC,SAAS,CAAC;IAC9C,SAAS,CAAC,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ;CAGxC;AAED,qBAAa,MAAO,SAAQ,gBAAgB;IAI/B,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAHxC,SAAS,EAAG,SAAS,CAAC;IACtB,WAAW,EAAG,WAAW,CAAC;gBAEJ,QAAQ,EAAE,QAAQ;CAOxC"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG;IAC9B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE;QACN,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,OAAO,CAAC;QACnB,GAAG,EAAE,OAAO,CAAC;QACb,GAAG,EAAE,OAAO,CAAC;KACb,CAAC;IACF,QAAQ,EAAE;QACT,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,GAAG,GAAG,GAAG,CAAC;KACrB,CAAA;IACD,KAAK,EAAE;QACN,EAAE,EAAE,OAAO,CAAC;QACZ,IAAI,EAAE,OAAO,CAAC;QACd,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACrB,CAAA;CACD,CAAA;AAED,qBAAa,SAAU,SAAQ,eAAe,CAAC,WAAW,CAAC;IAC9C,SAAS,CAAC,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ;IAIlC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;CAGhE;AAED,qBAAa,WAAY,SAAQ,eAAe,CAAC,SAAS,CAAC;IAC9C,SAAS,CAAC,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ;CAGxC;AAED,qBAAa,MAAO,SAAQ,gBAAgB;IAI/B,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAHxC,SAAS,EAAG,SAAS,CAAC;IACtB,WAAW,EAAG,WAAW,CAAC;gBAEJ,QAAQ,EAAE,QAAQ;CAOxC"}
package/dist/storage.d.ts CHANGED
@@ -90,8 +90,8 @@ export declare class Storage extends PathEventEmitter {
90
90
  * @param {string} set Update transcribed text
91
91
  * @return {Promise<string>} Extracted text
92
92
  */
93
- text(path: string): Promise<string>;
94
93
  text(path: string, set: string | null): Promise<FileMeta>;
94
+ text(path: string): Promise<string>;
95
95
  /**
96
96
  * Upload file(s) to server, Uses file browser if no files provided
97
97
  * @param path Path files will be uploaded to
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ztimson/momentum",
3
- "version": "1.5.3",
3
+ "version": "1.5.5",
4
4
  "description": "Client library for momentum",
5
5
  "keywords": [
6
6
  "Momentum"