@ztimson/momentum 1.5.4 → 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":"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"}
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":"AACA,OAAO,EAAC,gBAAgB,EAAM,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,IAAI,EAAE,WAAW,EAAC,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAElC,MAAM,MAAM,WAAW,GAAG;IACzB,iBAAiB;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,mBAAmB;IACnB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,6BAA6B;IAC7B,MAAM,EAAE,GAAG,CAAC;IACZ,wBAAwB;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oCAAoC;IACpC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,2BAA2B;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAA;CACrB,CAAA;AAED,iCAAiC;AACjC,qBAAa,IAAK,SAAQ,gBAAgB;IAmB7B,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAlBxC,sBAAsB;IACf,IAAI,EAAG,IAAI,CAAC;IAEnB,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAE7B,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,yDAAyD;IACzD,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,SAAS,CAAuB;IAC1D,oDAAoD;IACpD,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,EAOrC;gBAEqB,QAAQ,EAAE,QAAQ;IAiBxC;;;;;;;OAOG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAsBhE;;;;OAIG;IACH,SAAS,CAAC,IAAI,GAAE,MAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,WAAW,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;KAAC,GAAG,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;IAqBvK;;;;OAIG;IACH,aAAa,CAAC,IAAI,GAAE,MAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB9D;;;OAGG;IACG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IACvC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7C;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpF;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACtD;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnC;;;;;OAKG;IACG,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,UAAQ,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAgBlF,0EAA0E;IACpE,MAAM,CAAC,QAAQ,EAAE,MAAM;IAK7B;;;;;;OAMG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAW7F"}
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
  }
@@ -2873,8 +2876,10 @@
2873
2876
  }
2874
2877
  if (!s?.user) {
2875
2878
  s = await this.loginRedirect();
2876
- if (!!s && reload) if (typeof reload == "string") location.href = reload;
2877
- else location.reload();
2879
+ if (!!s && reload) {
2880
+ if (typeof reload == "string") location.href = reload;
2881
+ else location.reload();
2882
+ }
2878
2883
  }
2879
2884
  return this.session || null;
2880
2885
  }
@@ -3248,7 +3253,7 @@
3248
3253
  });
3249
3254
  /** Check if PWA can be installed */
3250
3255
  get canInstall() {
3251
- return !!this.nativePwaPrompt;
3256
+ return !!this.nativePwaPrompt && !this.isApp && !this.isHeadless;
3252
3257
  }
3253
3258
  /** Running inside a container */
3254
3259
  get isApp() {
@@ -3304,7 +3309,7 @@
3304
3309
  window.addEventListener("beforeinstallprompt", (event) => {
3305
3310
  event.preventDefault();
3306
3311
  this.nativePwaPrompt = event;
3307
- this.emit("install:r");
3312
+ this.emit("install:r", true);
3308
3313
  });
3309
3314
  if (this.storage && sessionStorage.getItem(`${this.momentum.url.host}:speed`)) this.speed = Promise.resolve(+sessionStorage.getItem(`${this.momentum.url.host}:speed`));
3310
3315
  else this.speed = new Promise((res) => {
@@ -3312,6 +3317,66 @@
3312
3317
  });
3313
3318
  }
3314
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
+ }
3315
3380
  static theme(setting, css = false) {
3316
3381
  const t = {
3317
3382
  background: setting?.background,
@@ -3371,14 +3436,6 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
3371
3436
  [k]: v.value
3372
3437
  }), {});
3373
3438
  } else settings = await this.momentum.settings.map(opts.reload);
3374
- const meta = (key, name, value) => {
3375
- const exists = document.querySelector(`meta[${key}="${name}"]`);
3376
- if (value === void 0 || exists) return exists;
3377
- const meta = document.createElement("meta");
3378
- meta.setAttribute(key, name);
3379
- meta.content = value;
3380
- document.head.append(meta);
3381
- };
3382
3439
  document.querySelectorAll(".momentum-logo").forEach((el) => {
3383
3440
  const size = el.src ? /[?&]size="?(.+)(?:"|&|$)/.exec(el.src) : null;
3384
3441
  el.src = `${this.momentum.url.toString()}favicon.png${size ? `?size=${size[1]}` : ""}`;
@@ -3389,35 +3446,35 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
3389
3446
  else if (keys[1] == "contact" && el.tagName == "A") el.href = `mailto:${settings.contact}?subject=${settings.title} - ${document.title.split("|")[0]}`;
3390
3447
  el.innerText = keys[2] ? dotNotation(settings[keys[1]], keys[2]) : settings[keys[1]];
3391
3448
  });
3392
- meta("author", "content", "Built with Momentum");
3393
- meta("name", "description", settings["description"]);
3394
- meta("property", "og:title", settings["title"]);
3395
- meta("property", "og:description", settings["description"]);
3396
- meta("property", "og:image", `${settings["public_url"]}/banner.png?size=1200x630`);
3397
- meta("property", "og:logo", `${settings["public_url"]}/favicon.png?size=180`);
3398
- meta("property", "og:url", settings["public_url"]);
3399
- meta("property", "og:site_name", "Momentum");
3400
- meta("property", "og:type", "website");
3401
- meta("name", "twitter:card", "summary_large_image");
3402
- if (settings.modules?.["pwa"]) {
3403
- meta("name", "mobile-web-app-capable", "yes");
3404
- meta("name", "apple-mobile-web-app-status-bar-style", "default");
3405
- meta("name", "apple-mobile-web-app-title", settings["title"]);
3406
- meta("name", "apple-touch-icon", `${settings["public_url"]}/favicon.png`);
3407
- meta("name", "apple-touch-startup-image", `${settings["public_url"]}/favicon.png`);
3408
- if (!document.querySelector("link[rel=\"manifest\"]")) {
3409
- const link = document.createElement("link");
3410
- link.setAttribute("rel", "manifest");
3411
- link.setAttribute("href", this.momentum.url.toString() + "manifest.json");
3412
- 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);
3413
3471
  }
3414
- if (opts.install !== false && !this.installTimeout && !this.isApp && !this.isHeadless) this.installTimeout = setTimeout(async () => {
3415
- this.installTimeout = null;
3416
- const dismissed = localStorage.getItem(`momentum:install`);
3417
- if (!dismissed || dismissed != "true" && Date.now() - new Date(dismissed).getTime() > 6e4 * 60 * 24 * this.momentum.opts.installPrompt.retry) this.install();
3418
- }, 6e4 * this.momentum.opts.installPrompt.delay);
3419
- }
3420
- 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);
3421
3478
  if (!document.body.classList.contains("theme-manual")) {
3422
3479
  document.body.classList.add(settings["theme"]?.darkMode ? "theme-dark" : "theme-light");
3423
3480
  document.body.classList.remove(!settings["theme"]?.darkMode ? "theme-dark" : "theme-light");
@@ -3624,9 +3681,10 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
3624
3681
  }
3625
3682
  }).then((resp) => {
3626
3683
  if (!resp) return null;
3627
- if (Array.isArray(resp)) if (!q && !options?.limit) this.emit(PES`data/${collection}:r`, collection, resp);
3628
- else resp.forEach((r) => this.emit(PES`data/${collection}/${r._id}:r`, collection, resp));
3629
- 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);
3630
3688
  return resp;
3631
3689
  });
3632
3690
  }
@@ -3816,12 +3874,13 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
3816
3874
  if (typeof window != "undefined") window.addEventListener("unhandledrejection", async (event) => {
3817
3875
  let log = event.reason?.stack || event.reason;
3818
3876
  if (event.reason?.url) log = `${event.reason.method} ${event.reason.url} -> ${event.reason.code}\n\n${log}`;
3819
- if (event.reason?.code == null || event.reason?.code >= 500) if (LOG_LEVEL[this.logLevel] >= 0) this.error(log);
3820
- else {
3821
- this.logs.push(this.buildLog(LOG_LEVEL.ERROR, log));
3822
- this.emit(`local/error:c`, this.logs);
3823
- }
3824
- 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);
3825
3884
  else {
3826
3885
  this.logs.push(this.buildLog(LOG_LEVEL.WARN, log));
3827
3886
  this.emit(`local/warn:c`, this.logs);
@@ -4184,7 +4243,7 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
4184
4243
  */
4185
4244
  getToken(id) {
4186
4245
  return this.momentum.api.request({
4187
- url: `api/transactions/init/${id || ""}`,
4246
+ url: this.momentum.url.origin + `/api/transactions/init/${id || ""}`,
4188
4247
  method: "POST"
4189
4248
  }).then((resp) => resp.token);
4190
4249
  }
@@ -4253,7 +4312,7 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
4253
4312
  * @returns {string} URL
4254
4313
  */
4255
4314
  checkoutUrl(id) {
4256
- return encodeURI(`${this.momentum.opts.checkoutUrl}?token=${id}`);
4315
+ return encodeURI(`${this.momentum.opts.checkoutUrl}?transaction=${id}`);
4257
4316
  }
4258
4317
  async delete(key) {
4259
4318
  throw new Error("Not supported");
@@ -4563,8 +4622,10 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
4563
4622
  this.cache.values().forEach((meta) => {
4564
4623
  if (meta?.children && event.path == meta.path) meta.children = [...meta.children.filter((c) => c.path != event.name), payload.name];
4565
4624
  });
4566
- } else if (event.delete || payload == null) if (!event.path) return this.cache.clear();
4567
- 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
+ }
4568
4629
  });
4569
4630
  }
4570
4631
  /**
@@ -4891,7 +4952,7 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
4891
4952
  };
4892
4953
  //#endregion
4893
4954
  //#region package.json
4894
- var version = "1.5.4";
4955
+ var version = "1.5.5";
4895
4956
  //#endregion
4896
4957
  //#region src/webRtc.ts
4897
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
  }
@@ -2869,8 +2872,10 @@ var Auth = class extends PathEventEmitter {
2869
2872
  }
2870
2873
  if (!s?.user) {
2871
2874
  s = await this.loginRedirect();
2872
- if (!!s && reload) if (typeof reload == "string") location.href = reload;
2873
- else location.reload();
2875
+ if (!!s && reload) {
2876
+ if (typeof reload == "string") location.href = reload;
2877
+ else location.reload();
2878
+ }
2874
2879
  }
2875
2880
  return this.session || null;
2876
2881
  }
@@ -3244,7 +3249,7 @@ var Client = class Client extends PathEventEmitter {
3244
3249
  });
3245
3250
  /** Check if PWA can be installed */
3246
3251
  get canInstall() {
3247
- return !!this.nativePwaPrompt;
3252
+ return !!this.nativePwaPrompt && !this.isApp && !this.isHeadless;
3248
3253
  }
3249
3254
  /** Running inside a container */
3250
3255
  get isApp() {
@@ -3300,7 +3305,7 @@ var Client = class Client extends PathEventEmitter {
3300
3305
  window.addEventListener("beforeinstallprompt", (event) => {
3301
3306
  event.preventDefault();
3302
3307
  this.nativePwaPrompt = event;
3303
- this.emit("install:r");
3308
+ this.emit("install:r", true);
3304
3309
  });
3305
3310
  if (this.storage && sessionStorage.getItem(`${this.momentum.url.host}:speed`)) this.speed = Promise.resolve(+sessionStorage.getItem(`${this.momentum.url.host}:speed`));
3306
3311
  else this.speed = new Promise((res) => {
@@ -3308,6 +3313,66 @@ var Client = class Client extends PathEventEmitter {
3308
3313
  });
3309
3314
  }
3310
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
+ }
3311
3376
  static theme(setting, css = false) {
3312
3377
  const t = {
3313
3378
  background: setting?.background,
@@ -3367,14 +3432,6 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
3367
3432
  [k]: v.value
3368
3433
  }), {});
3369
3434
  } else settings = await this.momentum.settings.map(opts.reload);
3370
- const meta = (key, name, value) => {
3371
- const exists = document.querySelector(`meta[${key}="${name}"]`);
3372
- if (value === void 0 || exists) return exists;
3373
- const meta = document.createElement("meta");
3374
- meta.setAttribute(key, name);
3375
- meta.content = value;
3376
- document.head.append(meta);
3377
- };
3378
3435
  document.querySelectorAll(".momentum-logo").forEach((el) => {
3379
3436
  const size = el.src ? /[?&]size="?(.+)(?:"|&|$)/.exec(el.src) : null;
3380
3437
  el.src = `${this.momentum.url.toString()}favicon.png${size ? `?size=${size[1]}` : ""}`;
@@ -3385,35 +3442,35 @@ ${Object.entries(t).map(([name, value]) => `--theme-${kebabCase(name)}: ${value}
3385
3442
  else if (keys[1] == "contact" && el.tagName == "A") el.href = `mailto:${settings.contact}?subject=${settings.title} - ${document.title.split("|")[0]}`;
3386
3443
  el.innerText = keys[2] ? dotNotation(settings[keys[1]], keys[2]) : settings[keys[1]];
3387
3444
  });
3388
- meta("author", "content", "Built with Momentum");
3389
- meta("name", "description", settings["description"]);
3390
- meta("property", "og:title", settings["title"]);
3391
- meta("property", "og:description", settings["description"]);
3392
- meta("property", "og:image", `${settings["public_url"]}/banner.png?size=1200x630`);
3393
- meta("property", "og:logo", `${settings["public_url"]}/favicon.png?size=180`);
3394
- meta("property", "og:url", settings["public_url"]);
3395
- meta("property", "og:site_name", "Momentum");
3396
- meta("property", "og:type", "website");
3397
- meta("name", "twitter:card", "summary_large_image");
3398
- if (settings.modules?.["pwa"]) {
3399
- meta("name", "mobile-web-app-capable", "yes");
3400
- meta("name", "apple-mobile-web-app-status-bar-style", "default");
3401
- meta("name", "apple-mobile-web-app-title", settings["title"]);
3402
- meta("name", "apple-touch-icon", `${settings["public_url"]}/favicon.png`);
3403
- meta("name", "apple-touch-startup-image", `${settings["public_url"]}/favicon.png`);
3404
- if (!document.querySelector("link[rel=\"manifest\"]")) {
3405
- const link = document.createElement("link");
3406
- link.setAttribute("rel", "manifest");
3407
- link.setAttribute("href", this.momentum.url.toString() + "manifest.json");
3408
- 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);
3409
3467
  }
3410
- if (opts.install !== false && !this.installTimeout && !this.isApp && !this.isHeadless) this.installTimeout = setTimeout(async () => {
3411
- this.installTimeout = null;
3412
- const dismissed = localStorage.getItem(`momentum:install`);
3413
- if (!dismissed || dismissed != "true" && Date.now() - new Date(dismissed).getTime() > 6e4 * 60 * 24 * this.momentum.opts.installPrompt.retry) this.install();
3414
- }, 6e4 * this.momentum.opts.installPrompt.delay);
3415
- }
3416
- 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);
3417
3474
  if (!document.body.classList.contains("theme-manual")) {
3418
3475
  document.body.classList.add(settings["theme"]?.darkMode ? "theme-dark" : "theme-light");
3419
3476
  document.body.classList.remove(!settings["theme"]?.darkMode ? "theme-dark" : "theme-light");
@@ -3620,9 +3677,10 @@ var Data = class extends PathEventEmitter {
3620
3677
  }
3621
3678
  }).then((resp) => {
3622
3679
  if (!resp) return null;
3623
- if (Array.isArray(resp)) if (!q && !options?.limit) this.emit(PES`data/${collection}:r`, collection, resp);
3624
- else resp.forEach((r) => this.emit(PES`data/${collection}/${r._id}:r`, collection, resp));
3625
- 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);
3626
3684
  return resp;
3627
3685
  });
3628
3686
  }
@@ -3812,12 +3870,13 @@ var Logger = class Logger extends PathEventEmitter {
3812
3870
  if (typeof window != "undefined") window.addEventListener("unhandledrejection", async (event) => {
3813
3871
  let log = event.reason?.stack || event.reason;
3814
3872
  if (event.reason?.url) log = `${event.reason.method} ${event.reason.url} -> ${event.reason.code}\n\n${log}`;
3815
- if (event.reason?.code == null || event.reason?.code >= 500) if (LOG_LEVEL[this.logLevel] >= 0) this.error(log);
3816
- else {
3817
- this.logs.push(this.buildLog(LOG_LEVEL.ERROR, log));
3818
- this.emit(`local/error:c`, this.logs);
3819
- }
3820
- 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);
3821
3880
  else {
3822
3881
  this.logs.push(this.buildLog(LOG_LEVEL.WARN, log));
3823
3882
  this.emit(`local/warn:c`, this.logs);
@@ -4180,7 +4239,7 @@ var Transactions = class extends AssetController {
4180
4239
  */
4181
4240
  getToken(id) {
4182
4241
  return this.momentum.api.request({
4183
- url: `api/transactions/init/${id || ""}`,
4242
+ url: this.momentum.url.origin + `/api/transactions/init/${id || ""}`,
4184
4243
  method: "POST"
4185
4244
  }).then((resp) => resp.token);
4186
4245
  }
@@ -4249,7 +4308,7 @@ var Transactions = class extends AssetController {
4249
4308
  * @returns {string} URL
4250
4309
  */
4251
4310
  checkoutUrl(id) {
4252
- return encodeURI(`${this.momentum.opts.checkoutUrl}?token=${id}`);
4311
+ return encodeURI(`${this.momentum.opts.checkoutUrl}?transaction=${id}`);
4253
4312
  }
4254
4313
  async delete(key) {
4255
4314
  throw new Error("Not supported");
@@ -4559,8 +4618,10 @@ var Storage = class extends PathEventEmitter {
4559
4618
  this.cache.values().forEach((meta) => {
4560
4619
  if (meta?.children && event.path == meta.path) meta.children = [...meta.children.filter((c) => c.path != event.name), payload.name];
4561
4620
  });
4562
- } else if (event.delete || payload == null) if (!event.path) return this.cache.clear();
4563
- 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
+ }
4564
4625
  });
4565
4626
  }
4566
4627
  /**
@@ -4887,7 +4948,7 @@ var Static = class extends Storage {
4887
4948
  };
4888
4949
  //#endregion
4889
4950
  //#region package.json
4890
- var version = "1.5.4";
4951
+ var version = "1.5.5";
4891
4952
  //#endregion
4892
4953
  //#region src/webRtc.ts
4893
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":"AAAA,OAAO,EAAC,KAAK,IAAI,EAAK,MAAM,QAAQ,CAAC;AACrC,OAAO,EACN,KAAK,EACL,eAAe,EAKf,gBAAgB,EAAO,WAAW,EAAE,SAAS,EAC7C,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,4BAA4B;AAC5B,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG;IAChC,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC;IAC1C,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC3B,CAAA;AAED,uBAAuB;AACvB,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG;IAC7B,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACvB,CAAA;AAED,mBAAmB;AACnB,qBAAa,OAAQ,SAAQ,gBAAgB;IAKhC,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJjE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAEhE,KAAK,oCAAiD;gBAEhC,QAAQ,EAAE,QAAQ,EAAmB,MAAM,GAAE,MAAkB;IAiBrF;;;;OAIG;IACH,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC;IAQnD;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;IAgBvE;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO3C;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC;IAI9D;;;;OAIG;IACH,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;IAQhD;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQrC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;IAStE;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM;IACjD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC;IAC/E,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI;IAiB7D;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IACzD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOnC;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,GAAE,MAAY,EAAE,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;IAsBpJ;;;;;;OAMG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,QAAQ,KAAK,GAAG,CAAC,EAAE,IAAI,GAAE;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAM,GAAG,WAAW;CAahI"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ztimson/momentum",
3
- "version": "1.5.4",
3
+ "version": "1.5.5",
4
4
  "description": "Client library for momentum",
5
5
  "keywords": [
6
6
  "Momentum"