tungsten 0.5.9 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/.build-complete +1 -1
  2. package/dist/Components.d.ts +10 -7
  3. package/dist/Components.d.ts.map +1 -1
  4. package/dist/Components.js +16 -3
  5. package/dist/Servers/DevServer.d.ts +8 -3
  6. package/dist/Servers/DevServer.d.ts.map +1 -1
  7. package/dist/Servers/DevServer.js +56 -21
  8. package/dist/Servers/ProdServer.d.ts +2 -1
  9. package/dist/Servers/ProdServer.d.ts.map +1 -1
  10. package/dist/Servers/ProdServer.js +45 -14
  11. package/dist/Servers/TungstenServer.d.ts +2 -0
  12. package/dist/Servers/TungstenServer.d.ts.map +1 -1
  13. package/dist/Servers/TungstenServer.js +13 -0
  14. package/dist/Servers/tungstenCorePrivateEnvSchema.d.ts +1 -1
  15. package/dist/Servers/tungstenCorePrivateEnvSchema.js +2 -2
  16. package/dist/Servers/tungstenCorePublicEnvSchema.d.ts +2 -2
  17. package/dist/Servers/tungstenCorePublicEnvSchema.js +3 -3
  18. package/dist/Store/makeStore.d.ts +12 -10
  19. package/dist/Store/makeStore.d.ts.map +1 -1
  20. package/dist/Store/makeStore.js +72 -8
  21. package/dist/bin/commands/dev.d.ts.map +1 -1
  22. package/dist/bin/commands/dev.js +4 -2
  23. package/dist/build/compileUserApp.d.ts.map +1 -1
  24. package/dist/hydrate/hydrate.d.ts.map +1 -1
  25. package/dist/hydrate/hydrate.js +0 -4
  26. package/package.json +2 -1
  27. package/dist/auth/ref/auth.d.ts +0 -2
  28. package/dist/auth/ref/auth.d.ts.map +0 -1
  29. package/dist/auth/ref/auth.js +0 -23
  30. package/dist/auth/ref/checkPasswordResetToken.d.ts +0 -2
  31. package/dist/auth/ref/checkPasswordResetToken.d.ts.map +0 -1
  32. package/dist/auth/ref/checkPasswordResetToken.js +0 -27
  33. package/dist/auth/ref/createPasswordResetToken.d.ts +0 -2
  34. package/dist/auth/ref/createPasswordResetToken.d.ts.map +0 -1
  35. package/dist/auth/ref/createPasswordResetToken.js +0 -19
@@ -1 +1 @@
1
- 1789636071115
1
+ 1789688301572
@@ -291,14 +291,17 @@ import type { ComponentRenderInfo } from './ComponentRenderInfo.type.js';
291
291
  import { type Effect } from './signals/tracking.js';
292
292
  import { type $ContentNull } from './symbols.js';
293
293
  import { type RenderedContentNode, type RenderedContentNodeClassComponent } from './RenderedContentNode.js';
294
+ export type ComponentStoreValue<T> = {
295
+ readonly get: () => T;
296
+ readonly sync: () => T;
297
+ readonly set: (value: T) => void;
298
+ readonly subscribe: () => void;
299
+ readonly unsubscribe: () => void;
300
+ readonly notify: <Fn extends ((value: T) => void)>(fn: Fn) => Fn;
301
+ readonly stopNotify: <Fn extends ((value: T) => void)>(fn: Fn) => Fn;
302
+ };
294
303
  export type ComponentStore<Schema> = {
295
- [Property in keyof Schema]: {
296
- readonly get: () => Schema[Property];
297
- readonly set: (value: Schema[Property]) => void;
298
- readonly subscribe: () => void;
299
- readonly unsubscribe: () => void;
300
- readonly sync: () => Schema[Property];
301
- };
304
+ [Property in keyof Schema]: ComponentStoreValue<Schema[Property]>;
302
305
  };
303
306
  export type ComponentStoreWithTrueStore<Schema> = ComponentStore<Schema> & {
304
307
  __trueStore: TrueStore<Schema>;
@@ -1 +1 @@
1
- {"version":3,"file":"Components.d.ts","sourceRoot":"","sources":["../src/Components.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Components.d.ts","sourceRoot":"","sources":["../src/Components.tsx"],"names":[],"mappings":"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"}
@@ -957,6 +957,11 @@ export function __proxyStore(store) {
957
957
  const handler = {
958
958
  get: (valueObject, key) => {
959
959
  switch (key) {
960
+ case 'sync':
961
+ {
962
+ //console.log('proxy sync gotten')
963
+ return () => valueObject.sync(this);
964
+ }
960
965
  case 'subscribe':
961
966
  {
962
967
  //console.log('proxy sub gotten')
@@ -967,10 +972,15 @@ export function __proxyStore(store) {
967
972
  //console.log('proxy sub gotten')
968
973
  return () => valueObject.unsubscribe(this);
969
974
  }
970
- case 'sync':
975
+ case 'notify':
971
976
  {
972
- //console.log('proxy sync gotten')
973
- return () => valueObject.sync(this);
977
+ //console.log('proxy sub gotten')
978
+ return fn => valueObject.notify(fn, this);
979
+ }
980
+ case 'stopNotify':
981
+ {
982
+ //console.log('proxy sub gotten')
983
+ return fn => valueObject.stopNotify(fn, this);
974
984
  }
975
985
  default:
976
986
  {
@@ -1000,6 +1010,9 @@ element) {
1000
1010
  //const typedKey = key as keyof typeof this.store
1001
1011
  //console.log(element.constructor.name + ' is unsubscribing from ' + String(key) + ' during deletion')
1002
1012
  store[key].unsubscribe();
1013
+ // the bound store has no stopNotifyAll: a component's callbacks go with the component,
1014
+ // and only the true store knows which are its
1015
+ trueStore[key].stopNotifyAll(element);
1003
1016
  });
1004
1017
  element.__instance.storeSubscriptions.get(trueStore)?.delete(element);
1005
1018
  }
@@ -11,8 +11,9 @@ export declare class DevServer extends TungstenServer {
11
11
  framework: Framework;
12
12
  config: FrameworkConfigComplete;
13
13
  compilationInfo: CompilationInfo;
14
- port: number;
15
- location: string | null;
14
+ requestedPort: number;
15
+ publicOrigin: string | null;
16
+ expectedHost: string | null;
16
17
  initialProcessEnv: Record<string, string>;
17
18
  app: express.Application;
18
19
  apiRoutes?: ApiRoutes;
@@ -40,7 +41,11 @@ export declare class DevServer extends TungstenServer {
40
41
  getGlobalData: (func: GlobalDataFunction, reqRes: ReqRes) => Promise<GlobalData>;
41
42
  errorLog: (error: unknown) => void;
42
43
  errorPage: (error: unknown, errorTrack: string[]) => string;
43
- start: () => Promise<string>;
44
+ start: () => Promise<{
45
+ localOrigin: string;
46
+ publicOrigin: string;
47
+ port: number;
48
+ }>;
44
49
  stop: () => void;
45
50
  }
46
51
  //# sourceMappingURL=DevServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DevServer.d.ts","sourceRoot":"","sources":["../../src/Servers/DevServer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,OAAgF,MAAM,SAAS,CAAA;AAOtG,OAAO,KAAK,EAAE,uBAAuB,EAAwB,MAAM,uBAAuB,CAAA;AAC1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AA0B1C,OAAO,EAAkB,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAC3G,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAsBrD,qBAAa,SAAU,SAAQ,cAAc;IACzC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,uBAAuB,CAAA;IAC/B,eAAe,EAAE,eAAe,CAAA;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAO;IAC9B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAA;IAExB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,OAAO,CAAO;IAC3B,cAAc,EAAE,MAAM,CAAI;IAC1B,oBAAoB,EAAE,MAAM,CAAI;IAChC,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,iBAAiB,CAA4B;IAIrD,OAAO,CAAC,MAAM,CAA2C;gBAErD,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,uBAAuB,EAAE,eAAe,EAAE,eAAe,EACvF,iBAAiB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAiIlD,OAAO,CAAC,mBAAmB,CA2E1B;IAKD,OAAO,CAAC,sBAAsB,CAQ7B;IACD,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAC9C,OAAO,CAAC,oBAAoB,CAwB3B;IACD,OAAO,CAAC,mBAAmB,CAK1B;IACD,OAAO,CAAC,gBAAgB,CAcvB;IAED,OAAO,CAAC,aAAa,CAuOpB;IAaD,OAAO,CAAC,mBAAmB,CAsC1B;IAID,aAAa,GAAU,MAAM,kBAAkB,EAAE,QAAQ,MAAM,yBAQ9D;IACD,QAAQ,GAAI,OAAO,OAAO,UAIzB;IACD,SAAS,GAAI,OAAO,OAAO,EAAE,YAAY,MAAM,EAAE,YAiBhD;IAGD,KAAK,QAAa,OAAO,CAAC,MAAM,CAAC,CAKhC;IACD,IAAI,aAMH;CAGJ"}
1
+ {"version":3,"file":"DevServer.d.ts","sourceRoot":"","sources":["../../src/Servers/DevServer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,OAAgF,MAAM,SAAS,CAAA;AAOtG,OAAO,KAAK,EAAE,uBAAuB,EAAwB,MAAM,uBAAuB,CAAA;AAC1F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AA0B1C,OAAO,EAAkB,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAC3G,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAsBrD,qBAAa,SAAU,SAAQ,cAAc;IACzC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,uBAAuB,CAAA;IAC/B,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,MAAM,CAAA;IAGrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAO;IAGlC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAO;IAClC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAA;IAExB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,OAAO,CAAO;IAC3B,cAAc,EAAE,MAAM,CAAI;IAC1B,oBAAoB,EAAE,MAAM,CAAI;IAChC,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,iBAAiB,CAA4B;IAIrD,OAAO,CAAC,MAAM,CAA2C;gBAErD,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,uBAAuB,EAAE,eAAe,EAAE,eAAe,EACvF,iBAAiB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAoIlD,OAAO,CAAC,mBAAmB,CA2E1B;IAKD,OAAO,CAAC,sBAAsB,CAQ7B;IACD,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAC9C,OAAO,CAAC,oBAAoB,CAwB3B;IACD,OAAO,CAAC,mBAAmB,CAK1B;IACD,OAAO,CAAC,gBAAgB,CAcvB;IAED,OAAO,CAAC,aAAa,CAiOpB;IAaD,OAAO,CAAC,mBAAmB,CAsC1B;IAID,aAAa,GAAU,MAAM,kBAAkB,EAAE,QAAQ,MAAM,yBAQ9D;IACD,QAAQ,GAAI,OAAO,OAAO,UAIzB;IACD,SAAS,GAAI,OAAO,OAAO,EAAE,YAAY,MAAM,EAAE,YAiBhD;IAGD,KAAK;;;;OA+BJ;IACD,IAAI,aAMH;CAGJ"}
@@ -49,8 +49,13 @@ export class DevServer extends TungstenServer {
49
49
  _defineProperty(this, "framework", void 0);
50
50
  _defineProperty(this, "config", void 0);
51
51
  _defineProperty(this, "compilationInfo", void 0);
52
- _defineProperty(this, "port", void 0);
53
- _defineProperty(this, "location", null);
52
+ _defineProperty(this, "requestedPort", void 0);
53
+ // the origin the browser is expected to use (FRONTEND_*, so not this server's own when a proxy
54
+ // sits in front). Both are set in start(), once a random port has resolved
55
+ _defineProperty(this, "publicOrigin", null);
56
+ // the same thing as a host header: host:port, the port dropped when the public scheme's
57
+ // default. What the warning above compares a request's Origin against
58
+ _defineProperty(this, "expectedHost", null);
54
59
  _defineProperty(this, "initialProcessEnv", void 0);
55
60
  _defineProperty(this, "app", void 0);
56
61
  //apiRoutesPromise?: Promise<ApiRoutes>
@@ -475,11 +480,37 @@ export class DevServer extends TungstenServer {
475
480
  // the port - a swallowed failure here looked like "dev is up but not responding"
476
481
  _defineProperty(this, "start", async () => {
477
482
  const {
478
- server
479
- } = await listenVerified(this.app, this.port, this.bootId);
483
+ server,
484
+ port
485
+ } = await listenVerified(this.app, this.requestedPort, this.bootId);
480
486
  this.server = server;
481
- cliNews(`Dev server ready at ${this.location}`);
482
- return this.location ?? '';
487
+ const localOrigin = `http://localhost:${port}`;
488
+ cliNews(`Dev server ready at ${localOrigin}`);
489
+ // a fixed FRONTEND_PORT cannot track a port the OS re-picks on every boot
490
+ const {
491
+ FRONTEND_PROTO,
492
+ FRONTEND_HOSTNAME,
493
+ FRONTEND_PORT
494
+ } = tungstenPublicEnv;
495
+ const publicOrigin = this.makeOrigin(FRONTEND_PROTO ?? 'http', FRONTEND_HOSTNAME ?? 'localhost', FRONTEND_PORT || port);
496
+ this.publicOrigin = publicOrigin;
497
+ if (localOrigin !== publicOrigin) {
498
+ cliNews(`Dev server ready at ${publicOrigin}`);
499
+ }
500
+ // Tungsten only serves over http, so the seen origin will always
501
+ // be http even if the FRONTEND_PROTO is https. The hostname+port
502
+ // will match the frontend, so 'site.com' not 'site.com:443' when serving
503
+ // over https port 443. The results in an origin of 'http:site.com' for
504
+ // https requests
505
+ this.expectedHost = new URL(publicOrigin).host;
506
+ if (this.requestedPort === 0 && Number(FRONTEND_PORT) > 0) {
507
+ cliWarn(`Tungsten server is running on a random free port (${port}),` + ` but FRONTEND_PORT is set to ${FRONTEND_PORT}.` + ` This is likely an error because it will be difficult` + ` for a router to route requests to a randomly selected port`);
508
+ }
509
+ return {
510
+ localOrigin,
511
+ publicOrigin,
512
+ port
513
+ };
483
514
  });
484
515
  _defineProperty(this, "stop", () => {
485
516
  if (this.server !== undefined) this.server.close();
@@ -499,13 +530,10 @@ export class DevServer extends TungstenServer {
499
530
  // + '\n Ensure that you have an env schema with this field, and a matching env file'
500
531
  // )
501
532
  // }
502
- const proto = tungstenPublicEnv.FRONTEND_PROTO ?? 'http';
503
- const host = tungstenPublicEnv.FRONTEND_HOST ?? 'localhost';
533
+ // 0 asks the OS for a free port - start() reports the one it actually bound
504
534
  const port = tungstenPrivateEnv.TUNGSTEN_SERVER_PORT ?? 3000;
505
- if (isNaN(port) || port === 0) throwError('DevServer', portError(port));
506
- this.port = port;
507
- //this.port = _port
508
- this.location = `${proto}://${host}:${port}`;
535
+ if (isNaN(port)) throwError('DevServer', portError(port));
536
+ this.requestedPort = port;
509
537
  this.initialProcessEnv = initialProcessEnv;
510
538
  this.app = express();
511
539
  this.reqId = 0;
@@ -517,25 +545,32 @@ export class DevServer extends TungstenServer {
517
545
  });
518
546
  //if (tungstenPrivateEnv.DEBUG === true) {
519
547
  this.app.use((req, res, next) => {
520
- const targetOrigin = req.protocol + '://' + String(req.header('host'));
521
- const target = targetOrigin + req.url;
548
+ const host = String(req.header('host')); // host:port, the port left out when default
549
+ const target = `${req.protocol}://${host}${req.url}`;
522
550
  const origin = req.header('origin');
523
551
  if (tungstenPrivateEnv.DEBUG === true) {
524
552
  // request log
525
553
  let message = 'Received request at ' + target;
526
554
  if (origin !== undefined) {
527
- message += ' from ' + String(req.header('origin'));
555
+ message += ' from ' + origin;
528
556
  // should we use referrer as a backup option?
529
557
  // not sure what that is
530
558
  }
531
559
  cliOut(message);
532
560
  }
533
- if (this.config.suppressOriginMismatchWarning !== true) {
534
- // origin-target mismatch warning
535
- if (origin !== undefined && origin === this.location && origin !== targetOrigin) {
536
- cliWarn(`Received a request from the frontend, but it's origin` + ` is not the same as the request origin.` + ` This may indicate a misconfiguration, and may prevent` + ` the passing of cookies to the tungsten server.`);
537
- cliWarn(`source: ${targetOrigin}`);
538
- cliWarn(`target: ${target}`);
561
+ // Did the request arrive where the page it came from was loaded? Compared as hosts,
562
+ // not origins: req.protocol is always http (tungsten serves no https), while the
563
+ // browser's origin reads https wherever a proxy terminates TLS - so comparing whole
564
+ // origins reports a mismatch on every request of a perfectly good https deployment
565
+ if (this.config.suppressOriginMismatchWarning !== true && origin !== undefined) {
566
+ const originHost = this.hostOfOrigin(origin);
567
+ // only the configured frontend's own traffic can be misconfigured this way - a
568
+ // request from anywhere else is an ordinary cross-origin call
569
+ if (originHost !== null && originHost === this.expectedHost && originHost !== host) {
570
+ cliWarn(`Received a request from the frontend, but it did not arrive at the` + ` address the frontend was loaded from. This may indicate a` + ` misconfiguration, and may prevent the passing of cookies to the` + ` tungsten server.`);
571
+ cliWarn(`request: ${target}`);
572
+ cliWarn(`loaded from: ${origin}`);
573
+ cliWarn(`arrived at: ${host}`);
539
574
  }
540
575
  }
541
576
  next();
@@ -14,7 +14,8 @@ export declare class ProdServer extends TungstenServer {
14
14
  compilationInfo: CompilationInfo;
15
15
  appRoutes: AppRoutes;
16
16
  RootComponentOrNull: AnyComponentType | null;
17
- location: string | null;
17
+ publicOrigin: string | null;
18
+ expectedHost: string | null;
18
19
  app: express.Application;
19
20
  apiRoutesPromise?: Promise<ApiRoutes>;
20
21
  apiRoutes?: ApiRoutes;
@@ -1 +1 @@
1
- {"version":3,"file":"ProdServer.d.ts","sourceRoot":"","sources":["../../src/Servers/ProdServer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,OAAO,MAAM,SAAS,CAAA;AAK7B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAiB7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAWrD,qBAAa,UAAW,SAAQ,cAAc;IAC1C,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,uBAAuB,CAAA;IAC/B,eAAe,EAAE,eAAe,CAAA;IAChC,SAAS,EAAE,SAAS,CAAA;IACpB,mBAAmB,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAK5C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAO;IAC9B,GAAG,EAAE,OAAO,CAAC,WAAW,CAAA;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IACrC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,MAAM,CAAc;gBAExB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,uBAAuB,EAC/B,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,gBAAgB,GAAG,IAAI,EAC5C,gBAAgB,EAAE,gBAAgB,GAAG,IAAI;IAmI7C,OAAO,CAAC,gBAAgB,CAgBvB;IACD,aAAa,GAAU,KAAK,OAAO,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC,CA2HjF;IASD,OAAO,CAAC,mBAAmB,CA+C1B;IACD,SAAS,eASR;IAOK,KAAK,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBlE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAY9B"}
1
+ {"version":3,"file":"ProdServer.d.ts","sourceRoot":"","sources":["../../src/Servers/ProdServer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,OAAO,MAAM,SAAS,CAAA;AAK7B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAiB7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAWrD,qBAAa,UAAW,SAAQ,cAAc;IAC1C,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,uBAAuB,CAAA;IAC/B,eAAe,EAAE,eAAe,CAAA;IAChC,SAAS,EAAE,SAAS,CAAA;IACpB,mBAAmB,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAO5C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAO;IAGlC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAO;IAClC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAA;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IACrC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,MAAM,CAAc;gBAExB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,uBAAuB,EAC/B,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,gBAAgB,GAAG,IAAI,EAC5C,gBAAgB,EAAE,gBAAgB,GAAG,IAAI;IAqJ7C,OAAO,CAAC,gBAAgB,CAgBvB;IACD,aAAa,GAAU,KAAK,OAAO,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC,CA2HjF;IASD,OAAO,CAAC,mBAAmB,CA+C1B;IACD,SAAS,eASR;IAOK,KAAK,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BlE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAa9B"}
@@ -37,7 +37,12 @@ export class ProdServer extends TungstenServer {
37
37
  // prodBuildLocation: string
38
38
  // bundleLocation: string
39
39
  //port: number
40
- _defineProperty(this, "location", null);
40
+ // the origin the browser is expected to use (FRONTEND_*, so not this server's own when a proxy
41
+ // sits in front). Both are set in start()
42
+ _defineProperty(this, "publicOrigin", null);
43
+ // the same thing as a host header: host:port, the port dropped when the public scheme's
44
+ // default. What the warning below compares a request's Origin against
45
+ _defineProperty(this, "expectedHost", null);
41
46
  _defineProperty(this, "app", void 0);
42
47
  _defineProperty(this, "apiRoutesPromise", void 0);
43
48
  _defineProperty(this, "apiRoutes", void 0);
@@ -113,7 +118,6 @@ export class ProdServer extends TungstenServer {
113
118
  // throwError('DevServer', 'useRootComponent = false not implemented yet')
114
119
  // }
115
120
  const {
116
- compilationInfo,
117
121
  config,
118
122
  appRoutes,
119
123
  RootComponentOrNull
@@ -282,24 +286,42 @@ export class ProdServer extends TungstenServer {
282
286
  }
283
287
  const requestLog = tungstenPrivateEnv.DEBUG === true;
284
288
  const originMismatchWarning = this.config.suppressOriginMismatchWarning !== true;
289
+ // a misconfigured prod site mismatches on every request, so each host warns once a day
290
+ const originWarningInterval = 24 * 60 * 60 * 1000;
291
+ const originWarnedAt = new Map();
285
292
  if (requestLog || originMismatchWarning) {
286
293
  this.app.use((req, res, next) => {
287
- const target = req.protocol + '://' + String(req.header('host')) + req.url;
294
+ const host = String(req.header('host')); // host:port, the port left out when default
295
+ const target = `${req.protocol}://${host}${req.url}`;
288
296
  const origin = req.header('origin');
289
297
  // request log
290
298
  if (requestLog) {
291
299
  let message = 'Received request at ' + target;
292
300
  if (origin !== undefined) {
293
- message += ' from ' + String(req.header('origin'));
301
+ message += ' from ' + origin;
294
302
  // should we use referrer as a backup option?
295
303
  // not sure what that is
296
304
  }
297
305
  cliOut(message);
298
306
  }
299
- // origin-target mismatch warning
300
- if (originMismatchWarning) {
301
- if (origin !== undefined && origin === this.location && origin !== target) {
302
- cliWarn(`Received a request from the frontend, but it's origin` + ` is not the same as the request origin.` + ` This may indicate a misconfiguration, and may prevent` + ` the passing of cookies to the tungsten server.`);
307
+ // Did the request arrive where the page it came from was loaded? Hosts, not
308
+ // origins - req.protocol is always http here, while the browser's origin reads
309
+ // https wherever a proxy terminates TLS. DevServer carries the same check
310
+ if (originMismatchWarning && origin !== undefined) {
311
+ const originHost = this.hostOfOrigin(origin);
312
+ if (originHost !== null && originHost === this.expectedHost && originHost !== host) {
313
+ const warnedAt = originWarnedAt.get(host);
314
+ const now = Date.now();
315
+ if (warnedAt === undefined || now - warnedAt >= originWarningInterval) {
316
+ // the host header is client-supplied, so cap the map rather than grow it
317
+ if (originWarnedAt.size >= 100) originWarnedAt.clear();
318
+ originWarnedAt.set(host, now);
319
+ cliWarn(`Received a request from the frontend, but it did not arrive at the` + ` address the frontend was loaded from. This may indicate a` + ` misconfiguration, and may prevent the passing of cookies to the` + ` tungsten server.`);
320
+ cliWarn(`request: ${target}`);
321
+ cliWarn(`loaded from: ${origin}`);
322
+ cliWarn(`arrived at: ${host}`);
323
+ cliWarn(`Further mismatches on ${host} are silenced for 24 hours`);
324
+ }
303
325
  }
304
326
  }
305
327
  next();
@@ -342,8 +364,6 @@ export class ProdServer extends TungstenServer {
342
364
  // I don't think we ever override the port, not sure why
343
365
  // rejects on a bind error, or if another process answers on the port (see listenVerified.ts)
344
366
  async start(portOverride, mute = false) {
345
- const proto = tungstenPublicEnv.FRONTEND_PROTO ?? 'http';
346
- const host = tungstenPublicEnv.FRONTEND_HOST ?? 'localhost';
347
367
  let port;
348
368
  if (portOverride !== undefined) {
349
369
  port = portOverride ?? 0; // null: any free port
@@ -354,9 +374,19 @@ export class ProdServer extends TungstenServer {
354
374
  }
355
375
  const listening = await listenVerified(this.app, port, this.bootId);
356
376
  this.server = listening.server;
357
- this.location = `${proto}://${host}:${listening.port}`;
358
- if (!mute) cliNews(`${packageNameCapitalized} prod server ready at ${this.location}`);
359
- return this.location;
377
+ const localOrigin = this.makeOrigin('http', 'localhost', listening.port);
378
+ const {
379
+ FRONTEND_PROTO,
380
+ FRONTEND_HOSTNAME,
381
+ FRONTEND_PORT
382
+ } = tungstenPublicEnv;
383
+ const publicOrigin = this.makeOrigin(FRONTEND_PROTO ?? 'http', FRONTEND_HOSTNAME ?? 'localhost', FRONTEND_PORT || listening.port);
384
+ this.publicOrigin = publicOrigin;
385
+ // URL.host is the host header's own shape - a port only when it is not the public scheme's
386
+ // default, so an https site on 443 gives `site.example` rather than `site.example:443`
387
+ this.expectedHost = new URL(publicOrigin).host;
388
+ if (!mute) cliNews(`${packageNameCapitalized} prod server ready at ${localOrigin}`);
389
+ return localOrigin;
360
390
  }
361
391
  // close() alone only stops new connections arriving - keep-alive sockets (fetch/undici
362
392
  // holds them open) keep the handle, and so the event loop, alive until they time out
@@ -368,6 +398,7 @@ export class ProdServer extends TungstenServer {
368
398
  server.closeAllConnections();
369
399
  });
370
400
  delete this.server;
371
- this.location = null;
401
+ this.publicOrigin = null;
402
+ this.expectedHost = null;
372
403
  }
373
404
  }
@@ -1,6 +1,8 @@
1
1
  import type { Response as ExpressResponse } from 'express';
2
2
  import type { MatchedRouteInfo } from './MatchedRouteInfo.js';
3
3
  export declare class TungstenServer {
4
+ protected makeOrigin(proto: string, host: string, port: number): string;
5
+ protected hostOfOrigin(origin: string): string | null;
4
6
  protected handleRedirects(res: ExpressResponse, matchedRouteInfo: MatchedRouteInfo): boolean;
5
7
  }
6
8
  //# sourceMappingURL=TungstenServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TungstenServer.d.ts","sourceRoot":"","sources":["../../src/Servers/TungstenServer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,SAAS,CAAA;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAgB7D,qBAAa,cAAc;IACvB,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,OAAO;CAoD/F"}
1
+ {"version":3,"file":"TungstenServer.d.ts","sourceRoot":"","sources":["../../src/Servers/TungstenServer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,SAAS,CAAA;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAgB7D,qBAAa,cAAc;IAGvB,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAI9D,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOrD,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,OAAO;CAoD/F"}
@@ -9,6 +9,19 @@ function debug(...texts) {
9
9
  // console.log(...texts)
10
10
  }
11
11
  export class TungstenServer {
12
+ // URL drops the port when it is the scheme's default, so http://x:80 -> http://x, https://x:443
13
+ // -> https://x, and anything else keeps it. Throws on a host it cannot parse
14
+ makeOrigin(proto, host, port) {
15
+ return new URL(`${proto}://${host}:${port}`).origin;
16
+ }
17
+ // null for an origin that is not a URL - a sandboxed iframe or similar sends the literal `null`
18
+ hostOfOrigin(origin) {
19
+ try {
20
+ return new URL(origin).host;
21
+ } catch {
22
+ return null;
23
+ }
24
+ }
12
25
  handleRedirects(res, matchedRouteInfo) {
13
26
  // handle any redirect issued during routing
14
27
  if (matchedRouteInfo.data instanceof RoutingRedirect) {
@@ -1,6 +1,6 @@
1
1
  import * as v from 'valibot';
2
2
  export declare const tungstenCorePrivateEnvSchema: v.LooseObjectSchema<{
3
- readonly TUNGSTEN_SERVER_PORT: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.GtValueAction<number, 0, undefined>]>, undefined>;
3
+ readonly TUNGSTEN_SERVER_PORT: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
4
4
  readonly DEBUG: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
5
5
  }, undefined>;
6
6
  export type TungstenCorePrivateEnv = v.InferOutput<typeof tungstenCorePrivateEnvSchema>;
@@ -1,11 +1,11 @@
1
1
  import * as v from 'valibot';
2
2
  // non-mutative: looseObject passes unrecognised keys through untouched, so parsing against this
3
3
  // never drops or rewrites an app's own env values
4
- const portSchema = v.pipe(v.number(), v.gtValue(0));
4
+ const portSchema = v.pipe(v.number(), v.minValue(0));
5
5
  export const tungstenCorePrivateEnvSchema = v.looseObject({
6
6
  TUNGSTEN_SERVER_PORT: v.optional(portSchema),
7
7
  // FRONTEND_PROTO: v.optional(v.picklist(['http', 'https'])),
8
- // FRONTEND_HOST: v.optional(v.string()),
8
+ // FRONTEND_HOSTNAME: v.optional(v.string()),
9
9
  // FRONTEND_PORT: v.optional(portSchema),
10
10
  DEBUG: v.optional(v.boolean())
11
11
  // SUPPRESS: v.optional(v.object({
@@ -1,8 +1,8 @@
1
1
  import * as v from 'valibot';
2
2
  export declare const tungstenCorePublicEnvSchema: v.LooseObjectSchema<{
3
3
  readonly FRONTEND_PROTO: v.OptionalSchema<v.PicklistSchema<["http", "https"], undefined>, undefined>;
4
- readonly FRONTEND_HOST: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
5
- readonly FRONTEND_PORT: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.GtValueAction<number, 0, undefined>]>, undefined>;
4
+ readonly FRONTEND_HOSTNAME: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
5
+ readonly FRONTEND_PORT: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>;
6
6
  }, undefined>;
7
7
  export type TungstenCorePublicEnv = v.InferOutput<typeof tungstenCorePublicEnvSchema>;
8
8
  //# sourceMappingURL=tungstenCorePublicEnvSchema.d.ts.map
@@ -1,13 +1,13 @@
1
1
  import * as v from 'valibot';
2
- // FRONTEND_PROTO/FRONTEND_HOST/FRONTEND_PORT are tungsten's own fields (used to
2
+ // FRONTEND_PROTO/FRONTEND_HOSTNAME/FRONTEND_PORT are tungsten's own fields (used to
3
3
  // report the dev/prod server's own location - see DevServer.ts/ProdServer.ts).
4
4
  // Optional here because most apps keep them in the private env instead - see
5
5
  // tungstenCorePrivateEnvSchema.ts, which declares the same three fields. An
6
6
  // app is free to declare either or both; the servers check private first,
7
7
  // then public.
8
- const portSchema = v.pipe(v.number(), v.gtValue(0));
8
+ const portSchema = v.pipe(v.number(), v.minValue(0));
9
9
  export const tungstenCorePublicEnvSchema = v.looseObject({
10
10
  FRONTEND_PROTO: v.optional(v.picklist(['http', 'https'])),
11
- FRONTEND_HOST: v.optional(v.string()),
11
+ FRONTEND_HOSTNAME: v.optional(v.string()),
12
12
  FRONTEND_PORT: v.optional(portSchema)
13
13
  });
@@ -8,30 +8,32 @@ export declare class StoreValueServer<T> {
8
8
  readonly [$trueStoreCell] = true;
9
9
  constructor(value: T, serverDataLoading: ServerDataLoading);
10
10
  readonly get: () => T;
11
+ readonly sync: () => T;
11
12
  readonly set: (newValue: T) => void;
12
13
  readonly subscribe: () => void;
13
14
  readonly unsubscribe: () => void;
14
- readonly sync: () => T;
15
+ readonly notify: <Fn extends ((value: T) => void)>(fn: Fn) => Fn;
16
+ readonly stopNotify: <Fn extends ((value: T) => void)>(fn: Fn) => Fn;
17
+ readonly stopNotifyAll: () => void;
15
18
  }
19
+ export type NotifyFn<T> = (value: T) => void;
20
+ export type StoreValueSubscribe = (element: TungstenBaseStoreComponent<any, any, any>) => void;
21
+ export type StoreValueUnsubscribe = StoreValueSubscribe;
16
22
  export declare class StoreValue<T> {
17
23
  #private;
18
24
  readonly [$trueStoreCell] = true;
19
25
  constructor(key: Key, value: T, subscribedElements: SubscribedElements);
20
26
  readonly get: () => T;
27
+ readonly sync: (element: TungstenBaseStoreComponent<any, any, any>) => T;
21
28
  readonly set: (newValue: T) => void;
22
29
  readonly subscribe: (element: TungstenBaseStoreComponent<any, any, any>) => void;
23
30
  readonly unsubscribe: (element: TungstenBaseStoreComponent<any, any, any>) => void;
24
- readonly sync: (element: TungstenBaseStoreComponent<any, any, any>) => T;
31
+ readonly notify: <Fn extends ((value: T) => void)>(fn: Fn, element?: TungstenBaseStoreComponent<any, any, any>) => Fn;
32
+ readonly stopNotify: <Fn extends ((value: T) => void)>(fn: Fn, element?: TungstenBaseStoreComponent<any, any, any>) => Fn;
33
+ readonly stopNotifyAll: (element: TungstenBaseStoreComponent<any, any, any>) => void;
25
34
  }
26
35
  export type TrueStore<Schema> = {
27
- [Property in keyof Schema]: {
28
- readonly [$trueStoreCell]: true;
29
- readonly get: () => Schema[Property];
30
- readonly set: (value: Schema[Property]) => void;
31
- readonly subscribe: (element: TungstenBaseStoreComponent<any, any, any>) => void;
32
- readonly unsubscribe: (element: TungstenBaseStoreComponent<any, any, any>) => void;
33
- readonly sync: (element: TungstenBaseStoreComponent<any, any, any>) => Schema[Property];
34
- };
36
+ [Property in keyof Schema]: StoreValue<Schema[Property]>;
35
37
  };
36
38
  export declare function makeStore<Schema extends object>(schema: Schema, subscribedElements: SubscribedElements, serverDataLoading?: ServerDataLoading | null): TrueStore<Schema>;
37
39
  //# sourceMappingURL=makeStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"makeStore.d.ts","sourceRoot":"","sources":["../../src/Store/makeStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAOvE,eAAO,MAAM,cAAc,eAA0B,CAAA;AAIrD,qBAAa,gBAAgB,CAAC,CAAC;;IAC3B,QAAQ,CAAC,CAAC,cAAc,CAAC,QAAO;gBAGpB,KAAK,EAAE,CAAC,EAAE,iBAAiB,EAAE,iBAAiB;IAI1D,QAAQ,CAAC,GAAG,UAAoB;IAChC,QAAQ,CAAC,GAAG,GAAI,UAAU,CAAC,UAO1B;IACD,QAAQ,CAAC,SAAS,aAEjB;IACD,QAAQ,CAAC,WAAW,aAEnB;IACD,QAAQ,CAAC,IAAI,UAAoB;CACpC;AAED,qBAAa,UAAU,CAAC,CAAC;;IACrB,QAAQ,CAAC,CAAC,cAAc,CAAC,QAAO;gBAMpB,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,kBAAkB,EAAE,kBAAkB;IAKtE,QAAQ,CAAC,GAAG,UAAoB;IAChC,QAAQ,CAAC,GAAG,GAAI,UAAU,CAAC,UAY1B;IACD,QAAQ,CAAC,SAAS,GAAI,SAAS,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,UASvE;IACD,QAAQ,CAAC,WAAW,GAAI,SAAS,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,UAQzE;IACD,QAAQ,CAAC,IAAI,GAAI,SAAS,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,OAGlE;CACJ;AAED,MAAM,MAAM,SAAS,CAAC,MAAM,IAAI;KAC3B,QAAQ,IAAI,MAAM,MAAM,GAAG;QACxB,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,CAAA;QAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;QACpC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAA;QAC/C,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA;QAChF,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA;QAClF,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAA;KAC1F;CACJ,CAAA;AAGD,wBAAgB,SAAS,CAAC,MAAM,SAAS,MAAM,EAC3C,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,GAAE,iBAAiB,GAAG,IAAW,GACnD,SAAS,CAAC,MAAM,CAAC,CAWnB"}
1
+ {"version":3,"file":"makeStore.d.ts","sourceRoot":"","sources":["../../src/Store/makeStore.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ export class StoreValueServer {
21
21
  _classPrivateFieldInitSpec(this, _value, void 0);
22
22
  _classPrivateFieldInitSpec(this, _serverDataLoading, void 0);
23
23
  _defineProperty(this, "get", () => _classPrivateFieldGet(_value, this));
24
+ _defineProperty(this, "sync", () => _classPrivateFieldGet(_value, this));
24
25
  _defineProperty(this, "set", newValue => {
25
26
  _classPrivateFieldSet(_value, this, newValue);
26
27
  if (_classPrivateFieldGet(_serverDataLoading, this).value) {
@@ -34,7 +35,12 @@ export class StoreValueServer {
34
35
  _defineProperty(this, "unsubscribe", () => {
35
36
  // do nothing on the server, because nothing continue past first render.
36
37
  });
37
- _defineProperty(this, "sync", () => _classPrivateFieldGet(_value, this));
38
+ // no-ops, but they return the function as the client cells do, so a caller can keep the handle
39
+ _defineProperty(this, "notify", fn => fn);
40
+ _defineProperty(this, "stopNotify", fn => fn);
41
+ _defineProperty(this, "stopNotifyAll", () => {
42
+ // do nothing on the server, because nothing continue past first render.
43
+ });
38
44
  _classPrivateFieldSet(_value, this, value);
39
45
  _classPrivateFieldSet(_serverDataLoading, this, serverDataLoading);
40
46
  }
@@ -43,6 +49,9 @@ var _key = /*#__PURE__*/new WeakMap();
43
49
  var _value2 = /*#__PURE__*/new WeakMap();
44
50
  var _subscribedElements = /*#__PURE__*/new WeakMap();
45
51
  var _subscribers = /*#__PURE__*/new WeakMap();
52
+ var _notifyFunctions = /*#__PURE__*/new WeakMap();
53
+ var _notifyOwners = /*#__PURE__*/new WeakMap();
54
+ var _dropOwnerIfDone = /*#__PURE__*/new WeakMap();
46
55
  export class StoreValue {
47
56
  constructor(key, value, subscribedElements) {
48
57
  _defineProperty(this, $trueStoreCell, true);
@@ -50,8 +59,16 @@ export class StoreValue {
50
59
  _classPrivateFieldInitSpec(this, _key, void 0);
51
60
  _classPrivateFieldInitSpec(this, _value2, void 0);
52
61
  _classPrivateFieldInitSpec(this, _subscribedElements, void 0);
62
+ // Map<TungstenBaseComponent<any, any>, Set<Key>>
53
63
  _classPrivateFieldInitSpec(this, _subscribers, new Set());
64
+ _classPrivateFieldInitSpec(this, _notifyFunctions, new Set());
65
+ // callbacks an element owns, so teardown can drop them without the caller keeping a handle
66
+ _classPrivateFieldInitSpec(this, _notifyOwners, new Map());
54
67
  _defineProperty(this, "get", () => _classPrivateFieldGet(_value2, this));
68
+ _defineProperty(this, "sync", element => {
69
+ this.subscribe(element);
70
+ return _classPrivateFieldGet(_value2, this);
71
+ });
55
72
  _defineProperty(this, "set", newValue => {
56
73
  _classPrivateFieldSet(_value2, this, newValue);
57
74
  //console.log(this.#key, 'pushing', this.#subscribers)
@@ -64,6 +81,9 @@ export class StoreValue {
64
81
  //console.log('queueing update for', element.constructor.name, 'on', this.#key)
65
82
  element.__queueUpdate();
66
83
  }
84
+ for (const fn of _classPrivateFieldGet(_notifyFunctions, this)) {
85
+ fn(_classPrivateFieldGet(_value2, this));
86
+ }
67
87
  });
68
88
  _defineProperty(this, "subscribe", element => {
69
89
  _classPrivateFieldGet(_subscribers, this).add(element);
@@ -78,14 +98,58 @@ export class StoreValue {
78
98
  //console.log('StoreValue unsubscribe', this.#key, element)
79
99
  _classPrivateFieldGet(_subscribers, this).delete(element);
80
100
  //console.log('Subs', this.#subscribers)
81
- /*
82
- // it should always exist. But might be safer to check anyway
83
- if (!this.#store.#subscriptions.exists(element) this.#store.#subscriptions.get(element).delete(this)
84
- */
101
+ // keep the reverse index in step: otherwise unsubscribeAll walks keys this cell has
102
+ // already dropped, and the store holds the element after its last subscription
103
+ _classPrivateFieldGet(_dropOwnerIfDone, this).call(this, element);
85
104
  });
86
- _defineProperty(this, "sync", element => {
87
- this.subscribe(element);
88
- return _classPrivateFieldGet(_value2, this);
105
+ _defineProperty(this, "notify", (fn, element) => {
106
+ _classPrivateFieldGet(_notifyFunctions, this).add(fn);
107
+ if (element !== undefined) {
108
+ let owned = _classPrivateFieldGet(_notifyOwners, this).get(element);
109
+ if (owned === undefined) {
110
+ owned = new Set();
111
+ _classPrivateFieldGet(_notifyOwners, this).set(element, owned);
112
+ }
113
+ owned.add(fn);
114
+ // index the key like subscribe does, so teardown visits this cell
115
+ let subscriptions = _classPrivateFieldGet(_subscribedElements, this).get(element);
116
+ if (subscriptions === undefined) {
117
+ subscriptions = new Set();
118
+ _classPrivateFieldGet(_subscribedElements, this).set(element, subscriptions);
119
+ }
120
+ subscriptions.add(_classPrivateFieldGet(_key, this));
121
+ }
122
+ return fn;
123
+ });
124
+ _defineProperty(this, "stopNotify", (fn, element) => {
125
+ _classPrivateFieldGet(_notifyFunctions, this).delete(fn);
126
+ if (element !== undefined) {
127
+ _classPrivateFieldGet(_notifyOwners, this).get(element)?.delete(fn);
128
+ _classPrivateFieldGet(_dropOwnerIfDone, this).call(this, element);
129
+ }
130
+ return fn;
131
+ });
132
+ _defineProperty(this, "stopNotifyAll", element => {
133
+ const owned = _classPrivateFieldGet(_notifyOwners, this).get(element);
134
+ if (owned === undefined) return;
135
+ for (const fn of owned) {
136
+ _classPrivateFieldGet(_notifyFunctions, this).delete(fn);
137
+ }
138
+ _classPrivateFieldGet(_notifyOwners, this).delete(element);
139
+ _classPrivateFieldGet(_dropOwnerIfDone, this).call(this, element);
140
+ });
141
+ // the key stays indexed while the element still holds a subscription or a callback here.
142
+ // A field, not a private method: the framework's babel config has no private-method transform
143
+ _classPrivateFieldInitSpec(this, _dropOwnerIfDone, element => {
144
+ if (_classPrivateFieldGet(_subscribers, this).has(element)) return;
145
+ const owned = _classPrivateFieldGet(_notifyOwners, this).get(element);
146
+ if (owned !== undefined && owned.size > 0) return;
147
+ _classPrivateFieldGet(_notifyOwners, this).delete(element);
148
+ const subscriptions = _classPrivateFieldGet(_subscribedElements, this).get(element);
149
+ if (subscriptions !== undefined) {
150
+ subscriptions.delete(_classPrivateFieldGet(_key, this));
151
+ if (subscriptions.size === 0) _classPrivateFieldGet(_subscribedElements, this).delete(element);
152
+ }
89
153
  });
90
154
  _classPrivateFieldSet(_key, this, key);
91
155
  _classPrivateFieldSet(_value2, this, value);
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/dev.ts"],"names":[],"mappings":"AA6EA,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/dev.ts"],"names":[],"mappings":"AAiFA,OAAO,EAAE,CAAA"}
@@ -43,7 +43,9 @@ await sxyFramework.build('dev');
43
43
  // start a dev server
44
44
  const devServer = await sxyFramework.createDevServer();
45
45
  //cliOut('Dev server ready')
46
- const devServerLocation = await sxyFramework.profiler.timeProfileAsync('start dev server', () => devServer.start());
46
+ const {
47
+ publicOrigin
48
+ } = await sxyFramework.profiler.timeProfileAsync('start dev server', () => devServer.start());
47
49
  // devmon already restarts this process itself on a framework rebuild, so the warning
48
50
  // (which just tells you to restart manually) would be redundant noise under it - see devmon.ts.
49
51
  if (config.warnOnFrameworkChange && process.env.__TUNGSTEN_DEVMON !== 'true') {
@@ -54,6 +56,6 @@ if (config.warnOnFrameworkChange && process.env.__TUNGSTEN_DEVMON !== 'true') {
54
56
  if (boot) {
55
57
  cliOut('Booting to the dev site in your browser');
56
58
  // awaited only so it can be timed - open resolves once the browser process is spawned
57
- await sxyFramework.profiler.timeProfileAsync('boot browser', () => open(devServerLocation));
59
+ await sxyFramework.profiler.timeProfileAsync('boot browser', () => open(publicOrigin));
58
60
  }
59
61
  reportRunTotal('total (dev startup)');
@@ -1 +1 @@
1
- {"version":3,"file":"compileUserApp.d.ts","sourceRoot":"","sources":["../../src/build/compileUserApp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAWtC,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAM1E,wBAAsB,cAAc,CAChC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAClE,QAAQ,GAAE,YAAwC,EAAE,KAAK,UAAQ,EAAE,KAAK,UAAQ,EAAE,KAAK,UAAQ,GAChG,OAAO,CAAC,eAAe,CAAC,CAkF1B"}
1
+ {"version":3,"file":"compileUserApp.d.ts","sourceRoot":"","sources":["../../src/build/compileUserApp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAWtC,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAM1E,wBAAsB,cAAc,CAChC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAClE,QAAQ,GAAE,YAAwC,EAClD,KAAK,UAAQ,EAAE,KAAK,UAAQ,EAAE,KAAK,UAAQ,GAC5C,OAAO,CAAC,eAAe,CAAC,CAkF1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"hydrate.d.ts","sourceRoot":"","sources":["../../src/hydrate/hydrate.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAQnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAoCxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAO7C,OAAO,EAGH,KAAK,yBAAyB,EAEjC,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAmBlD,OAAO,EAC4B,KAAK,uBAAuB,EAC9D,MAAM,oCAAoC,CAAA;AAS3C,OAAO,0BAA0B,CAAA;AASjC,MAAM,MAAM,WAAW,GAAG;IACtB,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,uBAAuB,EAAE,CAAA;IAGrC,WAAW,EAAE,OAAO,CAAA;CACvB,CAAA;AACD,wBAAgB,sBAAsB,IAAI,WAAW,CAEpD;AAID,wBAAsB,OAAO,CACzB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,yBAAyB,GAAG,IAAI,EAC/C,cAAc,EAAE,cAAc,iBAkEjC;AAyBD,wBAAsB,oBAAoB,CACtC,aAAa,SAAS,yBAAyB,CAAC,GAAG,EAAE,GAAG,CAAC,EAEzD,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,WAAW,EAIjB,KAAK,GAAE,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,CAAM,EAChD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,SAAS,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CA6DtC"}
1
+ {"version":3,"file":"hydrate.d.ts","sourceRoot":"","sources":["../../src/hydrate/hydrate.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAQnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAoCxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAO7C,OAAO,EAGH,KAAK,yBAAyB,EAEjC,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAmBlD,OAAO,EAC4B,KAAK,uBAAuB,EAC9D,MAAM,oCAAoC,CAAA;AAS3C,OAAO,0BAA0B,CAAA;AASjC,MAAM,MAAM,WAAW,GAAG;IACtB,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,uBAAuB,EAAE,CAAA;IAGrC,WAAW,EAAE,OAAO,CAAA;CACvB,CAAA;AACD,wBAAgB,sBAAsB,IAAI,WAAW,CAEpD;AAID,wBAAsB,OAAO,CACzB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,yBAAyB,GAAG,IAAI,EAC/C,cAAc,EAAE,cAAc,iBA4DjC;AAyBD,wBAAsB,oBAAoB,CACtC,aAAa,SAAS,yBAAyB,CAAC,GAAG,EAAE,GAAG,CAAC,EAEzD,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,WAAW,EAIjB,KAAK,GAAE,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,CAAM,EAChD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,SAAS,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CA6DtC"}
@@ -69,10 +69,6 @@ export async function hydrate(appRoutes, RootComponent, instanceConfig) {
69
69
  stores,
70
70
  storeSubscriptions
71
71
  } = initStores(location, null, globalData, matchedRouteInfo);
72
- // const internalStore: TrueStore<InternalStoreSchema> = makeStore(new InternalStoreSchema(location))
73
- // //store: Store
74
- // const stores: TrueStore<any>[] = createStores(null, matchedRouteInfo, globalData)
75
- //console.log('hydration instance config', instanceConfig)
76
72
  const instance = new Instance(location, instanceConfig, null, appRoutes, routes, internalStore, stores, storeSubscriptions, globalData, matchedRouteInfo);
77
73
  if (isDev) setCurrentInstance(instance);
78
74
  //const routes = instance.getRoutes()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tungsten",
3
- "version": "0.5.9",
3
+ "version": "0.6.1",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "bin": {
@@ -123,6 +123,7 @@
123
123
  "build-prep": "pnpm build-ts-once",
124
124
  "build-watch": "run-p build-ts build-babel",
125
125
  "build-quick": "pnpm build-watch",
126
+ "build-tm": "rimraf dist && tscmon --on-first-success \"pnpm build-babel\"",
126
127
  "build-once": "rimraf intermed dist && pnpm build-ts-once && pnpm build-babel-once && pnpm build-component-styles",
127
128
  "build-component-styles": "node scripts/buildComponentStyles.ts",
128
129
  "build-vendor": "node scripts/bundleVendor.ts",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/auth/ref/auth.ts"],"names":[],"mappings":""}
@@ -1,23 +0,0 @@
1
- // export function doLogIn(req, user) {
2
- // req.session.loggedIn = true
3
- // req.session.userId = user.id
4
- // req.session.userType = user.type
5
- export {};
6
- // //console.log('session after doLogIn', req.session)
7
- // }
8
- // export function doLogOut(req) {
9
- // req.session.loggedIn = false
10
- // delete req.session.userId
11
- // delete req.session.userType
12
- // }
13
- // export function permittedToUseBackendReq(req) {
14
- // return req.session.loggedIn && permittedToUseBackend({ type: req.session.userType })
15
- // }
16
- // export function permittedToUseBackend(user) {
17
- // return [
18
- // 'administrator',
19
- // 'editor',
20
- // 'writer',
21
- // 'guest'
22
- // ].includes(user.type)
23
- // }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=checkPasswordResetToken.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkPasswordResetToken.d.ts","sourceRoot":"","sources":["../../../src/auth/ref/checkPasswordResetToken.ts"],"names":[],"mappings":""}
@@ -1,27 +0,0 @@
1
- // import crypto from 'crypto'
2
- // import { PasswordResetToken } from '../models/PasswordResetToken.js'
3
- export {};
4
- // export async function checkPasswordResetToken(user, token: string) {
5
- // const hash = crypto.createHash('sha256').update(user.id + token).digest('base64url')
6
- // const passwordResetToken
7
- // = await PasswordResetToken.find({
8
- // userId: user.id,
9
- // hash
10
- // })
11
- // if (passwordResetToken === null) {
12
- // return {
13
- // success: false,
14
- // reason: 'Invalid'
15
- // }
16
- // } else if (passwordResetToken.expiresAt < new Date()) {
17
- // return {
18
- // success: false,
19
- // reason: 'Expired'
20
- // }
21
- // } else {
22
- // return {
23
- // success: true,
24
- // reason: 'Valid'
25
- // }
26
- // }
27
- // }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=createPasswordResetToken.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createPasswordResetToken.d.ts","sourceRoot":"","sources":["../../../src/auth/ref/createPasswordResetToken.ts"],"names":[],"mappings":""}
@@ -1,19 +0,0 @@
1
- // import crypto from 'crypto'
2
- // import { PasswordResetToken } from '../models/PasswordResetToken.js'
3
- export {};
4
- // export function createPasswordResetToken(user) {
5
- // return new Promise( (resolve, reject) => {
6
- // crypto.randomBytes(16, async (err, buffer) => {
7
- // if (err) reject(err)
8
- // const token = buffer.toString('base64url')
9
- // const hash = crypto.createHash('sha256').update(user.id + token).digest('base64url')
10
- // const passwordResetToken = new PasswordResetToken
11
- // passwordResetToken.userId = user.id
12
- // passwordResetToken.hash = hash
13
- // const _1HourInMs = 1000*60*60
14
- // passwordResetToken.expiresAt = new Date(Date.now() + _1HourInMs)
15
- // await passwordResetToken.create()
16
- // resolve(token)
17
- // })
18
- // })
19
- // }