prostgles-server 4.2.599 → 4.2.601

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 (91) hide show
  1. package/README.md +26 -0
  2. package/dist/DBSchemaBuilder/getServerFunctionReturnTypes.external.fixture.d.ts +2 -2
  3. package/dist/DBSchemaBuilder/getServerFunctionReturnTypes.fixture.d.ts +8 -8
  4. package/dist/DboBuilder/DboBuilder.d.ts +4 -0
  5. package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
  6. package/dist/DboBuilder/DboBuilder.js +64 -13
  7. package/dist/DboBuilder/DboBuilder.js.map +1 -1
  8. package/dist/DboBuilder/DboBuilder.spec.d.ts +2 -0
  9. package/dist/DboBuilder/DboBuilder.spec.d.ts.map +1 -0
  10. package/dist/DboBuilder/DboBuilder.spec.js +72 -0
  11. package/dist/DboBuilder/DboBuilder.spec.js.map +1 -0
  12. package/dist/DboBuilder/TableHandler/TableHandler.d.ts +10 -5
  13. package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
  14. package/dist/DboBuilder/TableHandler/TableHandler.js +1 -0
  15. package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
  16. package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
  17. package/dist/DboBuilder/TableHandler/delete.js +1 -0
  18. package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
  19. package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.d.ts.map +1 -1
  20. package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js +3 -0
  21. package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js.map +1 -1
  22. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +2 -2
  23. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
  24. package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
  25. package/dist/Logging.d.ts +1 -1
  26. package/dist/Logging.d.ts.map +1 -1
  27. package/dist/Prostgles.d.ts +13 -8
  28. package/dist/Prostgles.d.ts.map +1 -1
  29. package/dist/Prostgles.js +57 -4
  30. package/dist/Prostgles.js.map +1 -1
  31. package/dist/ProstglesContext.spec.d.ts +2 -0
  32. package/dist/ProstglesContext.spec.d.ts.map +1 -0
  33. package/dist/ProstglesContext.spec.js +73 -0
  34. package/dist/ProstglesContext.spec.js.map +1 -0
  35. package/dist/ProstglesTypes.d.ts +11 -5
  36. package/dist/ProstglesTypes.d.ts.map +1 -1
  37. package/dist/PublishParser/PublishParser.d.ts +2 -2
  38. package/dist/PublishParser/PublishParser.d.ts.map +1 -1
  39. package/dist/PublishParser/PublishParser.js +2 -0
  40. package/dist/PublishParser/PublishParser.js.map +1 -1
  41. package/dist/PublishParser/defineServerFunction.d.ts +21 -16
  42. package/dist/PublishParser/defineServerFunction.d.ts.map +1 -1
  43. package/dist/PublishParser/defineServerFunction.js +7 -1
  44. package/dist/PublishParser/defineServerFunction.js.map +1 -1
  45. package/dist/PublishParser/defineServerFunction.spec.js +38 -0
  46. package/dist/PublishParser/defineServerFunction.spec.js.map +1 -1
  47. package/dist/PublishParser/publishTypesAndUtils.d.ts +10 -3
  48. package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
  49. package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
  50. package/dist/StorageClient/getFileTableConfig.d.ts +1 -1
  51. package/dist/StorageClient/getFileTableConfig.d.ts.map +1 -1
  52. package/dist/StorageClient/getFileTableConfig.js.map +1 -1
  53. package/dist/TableConfig/TableConfigTypes.d.ts.map +1 -1
  54. package/dist/TableConfig/initTableConfig.js +4 -4
  55. package/dist/TableConfig/initTableConfig.js.map +1 -1
  56. package/dist/TableHooks/TableHooks.d.ts +28 -20
  57. package/dist/TableHooks/TableHooks.d.ts.map +1 -1
  58. package/dist/index.d.ts +5 -2
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +6 -0
  61. package/dist/index.js.map +1 -1
  62. package/dist/initProstgles.d.ts +22 -13
  63. package/dist/initProstgles.d.ts.map +1 -1
  64. package/dist/initProstgles.js +11 -2
  65. package/dist/initProstgles.js.map +1 -1
  66. package/dist/updateConfiguration.d.ts +1 -1
  67. package/dist/updateConfiguration.d.ts.map +1 -1
  68. package/dist/updateConfiguration.js.map +1 -1
  69. package/lib/DboBuilder/DboBuilder.spec.ts +84 -0
  70. package/lib/DboBuilder/DboBuilder.ts +68 -13
  71. package/lib/DboBuilder/TableHandler/TableHandler.ts +2 -1
  72. package/lib/DboBuilder/TableHandler/delete.ts +1 -0
  73. package/lib/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.ts +4 -0
  74. package/lib/DboBuilder/ViewHandler/ViewHandler.ts +2 -2
  75. package/lib/Logging.ts +1 -0
  76. package/lib/Prostgles.ts +63 -8
  77. package/lib/ProstglesContext.spec.ts +76 -0
  78. package/lib/ProstglesTypes.ts +16 -5
  79. package/lib/PublishParser/PublishParser.ts +6 -4
  80. package/lib/PublishParser/defineServerFunction.spec.ts +48 -0
  81. package/lib/PublishParser/defineServerFunction.ts +61 -21
  82. package/lib/PublishParser/publishTypesAndUtils.ts +11 -3
  83. package/lib/StorageClient/getFileTableConfig.ts +2 -2
  84. package/lib/TableConfig/TableConfigTypes.ts +2 -13
  85. package/lib/TableConfig/initTableConfig.ts +4 -4
  86. package/lib/TableHooks/TableHooks.ts +35 -20
  87. package/lib/index.ts +25 -5
  88. package/lib/initProstgles.ts +57 -19
  89. package/lib/updateConfiguration.ts +1 -1
  90. package/package.json +1 -1
  91. package/tsconfig.json +2 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,2CAAwC;AAGxC,SAAS,SAAS,CAChB,MAAsC;IAEtC,MAAM,IAAI,GAAG,IAAI,qBAAS,CAAC,MAA8B,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0C,EAAE;QAClE,IAAI,EAAE,MAAM;KACb,CAA6C,CAAC;AACjD,CAAC;AACD,uEAAqD;AACrD,mDAAiC;AAKjC,wEAAsD;AAItD,4EAA0D;AAE1D,kBAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,2CAAwC;AAGxC,SAAS,SAAS,CAKhB,MAA+C;IAE/C,MAAM,IAAI,GAAG,IAAI,qBAAS,CACxB,MAAiE,CAClE,CAAC;IACF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0C,EAAE;QAClE,IAAI,EAAE,MAAM;KACb,CAAsD,CAAC;AAC1D,CAAC;AAED,qFAAqF;AAC9E,MAAM,eAAe,GAAG,GAAsD,EAAE;IACrF,OAAO,CAAsB,MAA+C,EAAE,EAAE,CAC9E,SAAS,CAAoB,MAAM,CAAC,CAAC;AACzC,CAAC,CAAC;AAHW,QAAA,eAAe,mBAG1B;AACF,uEAAqD;AACrD,mDAAiC;AAKjC,wEAAsD;AAYtD,4EAA0D;AAE1D,kBAAe,SAAS,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type pgPromise from "pg-promise";
2
2
  import type pg from "pg-promise/typescript/pg-subset";
3
- import type { SQLHandler, TableSchema } from "prostgles-types";
3
+ import type { MaybePromise, SQLHandler, TableSchema } from "prostgles-types";
4
4
  import type { AuthClientRequest, SessionUser } from "./Auth/AuthTypes";
5
5
  import type { DboBuilder } from "./DboBuilder/DboBuilder";
6
6
  import type { DBOFullyTyped } from "./DBSchemaBuilder/DBSchemaBuilder";
@@ -20,16 +20,16 @@ string | pg.IConnectionParameters<pg.IClient>;
20
20
  export type DbConnectionOpts = pg.IDefaults;
21
21
  export type PGP = pgPromise.IMain<{}, pg.IClient>;
22
22
  export type DB = pgPromise.IDatabase<{}, pg.IClient>;
23
- export type UpdatableOptions<S = void, SUser extends SessionUser = SessionUser> = Pick<ProstglesInitOptions<S, SUser>, "io" | "fileTable" | "restApi" | "tableHooks" | "tableConfig" | "schemaFilter" | "auth" | "publish" | "functions" | "publishRawSQL" | "tsGeneratedTypesDir" | "tsGeneratedTypesFunctionsPath" | "modifyClientSchema">;
23
+ export type UpdatableOptions<S = void, SUser extends SessionUser = SessionUser, Context = undefined> = Pick<ProstglesInitOptions<S, SUser, Context>, "io" | "fileTable" | "restApi" | "tableHooks" | "tableConfig" | "schemaFilter" | "auth" | "publish" | "functions" | "publishRawSQL" | "tsGeneratedTypesDir" | "tsGeneratedTypesFunctionsPath" | "modifyClientSchema" | "createContext">;
24
24
  export type OnInitReason = {
25
25
  type: "schema change";
26
26
  query: string;
27
27
  command: string | undefined;
28
28
  } | {
29
29
  type: "prgl.update";
30
- newOpts: Omit<UpdatableOptions, (typeof clientOnlyUpdateKeys)[number]>;
30
+ newOpts: Omit<UpdatableOptions<void, SessionUser, any>, (typeof clientOnlyUpdateKeys)[number]>;
31
31
  } | {
32
- type: "init" | "prgl.restart" | "TableConfig";
32
+ type: "init" | "prgl.restart" | "TableConfig" | "dbo.refresh";
33
33
  };
34
34
  type OnReadyParamsCommon = {
35
35
  db: DB;
@@ -39,18 +39,27 @@ type OnReadyParamsCommon = {
39
39
  };
40
40
  export type OnReadyParamsBasic = OnReadyParamsCommon & {
41
41
  dbo: DBHandlerServer;
42
+ context: any;
42
43
  };
43
- export type OnReadyParams<S> = OnReadyParamsCommon & {
44
+ export type OnReadyParams<S, Context = undefined> = OnReadyParamsCommon & {
44
45
  dbo: DBOFullyTyped<S>;
46
+ context: Context;
45
47
  };
46
- export type OnReadyCallback<S, SUser extends SessionUser> = (params: OnReadyParams<S>, update: (newOpts: UpdatableOptions<S, SUser>, force?: true) => Promise<void>) => void | Promise<void>;
47
- export type OnReadyCallbackBasic = (params: OnReadyParamsBasic, update: (newOpts: UpdatableOptions<void, SessionUser>, force?: true) => Promise<void>) => void | Promise<void>;
48
- export type InitResult<S = void, SUser extends SessionUser = SessionUser> = {
48
+ export type ContextCleanup = () => MaybePromise<void>;
49
+ export type CreateContextParams<S> = OnReadyParamsCommon & {
50
+ dbo: DBOFullyTyped<S>;
51
+ onCleanup: (cleanup: ContextCleanup) => void;
52
+ };
53
+ export type CreateContext<S, Context> = (params: CreateContextParams<S>) => MaybePromise<Context>;
54
+ export type OnReadyCallback<S, SUser extends SessionUser, Context = undefined> = (params: OnReadyParams<S, Context>, update: (newOpts: UpdatableOptions<S, SUser, Context>, force?: true) => Promise<void>) => void | Promise<void>;
55
+ export type OnReadyCallbackBasic = (params: OnReadyParamsBasic, update: (newOpts: UpdatableOptions<void, SessionUser, any>, force?: true) => Promise<void>) => void | Promise<void>;
56
+ export type InitResult<S = void, SUser extends SessionUser = SessionUser, Context = undefined> = {
49
57
  db: DBOFullyTyped<S>;
58
+ context: Context;
50
59
  sql: SQLHandler;
51
60
  _db: DB;
52
61
  pgp: PGP;
53
- io: ProstglesInitOptions<S, SUser>["io"];
62
+ io: ProstglesInitOptions<S, SUser, Context>["io"];
54
63
  destroy: () => Promise<boolean>;
55
64
  /**
56
65
  * Generated database public schema TS types for all tables and views
@@ -58,12 +67,12 @@ export type InitResult<S = void, SUser extends SessionUser = SessionUser> = {
58
67
  getTSSchema: typeof DboBuilder.prototype.getTsDefinitions;
59
68
  getSchema: typeof DboBuilder.prototype.getSchema;
60
69
  reWriteDBSchema: () => void;
61
- update: (newOpts: UpdatableOptions<S, SUser>, force?: true) => Promise<void>;
62
- restart: () => Promise<InitResult<S, SUser>>;
63
- options: ProstglesInitOptions<S, SUser>;
70
+ update: (newOpts: UpdatableOptions<S, SUser, Context>, force?: true) => Promise<void>;
71
+ restart: () => Promise<InitResult<S, SUser, Context>>;
72
+ options: ProstglesInitOptions<S, SUser, Context>;
64
73
  getClientDBHandlers: (clientReq: AuthClientRequest, scope: PermissionScope | undefined) => ReturnType<typeof getClientHandlers<S>>;
65
74
  getFieldsWithTypes: typeof DboBuilder.prototype.getDetailedFieldInfo;
66
75
  };
67
- export declare const initProstgles: (this: Prostgles, onReady: OnReadyCallbackBasic, reason: OnInitReason) => Promise<InitResult>;
76
+ export declare const initProstgles: (this: Prostgles, onReady: OnReadyCallbackBasic, reason: OnInitReason) => Promise<InitResult<void, SessionUser, any>>;
68
77
  export {};
69
78
  //# sourceMappingURL=initProstgles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"initProstgles.d.ts","sourceRoot":"","sources":["../lib/initProstgles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGpF,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAEvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAGrE;;GAEG;AACH,MAAM,MAAM,YAAY;AACtB;;GAEG;AACH,MAAM,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAChD,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAC,SAAS,CAAC;AAE5C,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;AAClD,MAAM,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;AAErD,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,SAAS,WAAW,GAAG,WAAW,IAAI,IAAI,CACpF,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,EAC5B,IAAI,GACJ,WAAW,GACX,SAAS,GACT,YAAY,GACZ,aAAa,GACb,cAAc,GACd,MAAM,GACN,SAAS,GACT,WAAW,GACX,eAAe,GACf,qBAAqB,GACrB,+BAA+B,GAC/B,oBAAoB,CACvB,CAAC;AACF,MAAM,MAAM,YAAY,GACpB;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;CACxE,GACD;IACE,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,aAAa,CAAC;CAC/C,CAAC;AAEN,KAAK,mBAAmB,GAAG;IACzB,EAAE,EAAE,EAAE,CAAC;IACP,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG;IACrD,GAAG,EAAE,eAAe,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,mBAAmB,GAAG;IACnD,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,EAAE,KAAK,SAAS,WAAW,IAAI,CAC1D,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,KACzE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1B,MAAM,MAAM,oBAAoB,GAAG,CACjC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,KAClF,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,SAAS,WAAW,GAAG,WAAW,IAAI;IAC1E,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACrB,GAAG,EAAE,UAAU,CAAC;IAChB,GAAG,EAAE,EAAE,CAAC;IACR,GAAG,EAAE,GAAG,CAAC;IACT,EAAE,EAAE,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC;;OAEG;IACH,WAAW,EAAE,OAAO,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC;IAC1D,SAAS,EAAE,OAAO,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;IACjD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,OAAO,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7C,OAAO,EAAE,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACxC,mBAAmB,EAAE,CACnB,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,eAAe,GAAG,SAAS,KAC/B,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7C,kBAAkB,EAAE,OAAO,UAAU,CAAC,SAAS,CAAC,oBAAoB,CAAC;CACtE,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,MAAM,SAAS,EACf,SAAS,oBAAoB,EAC7B,QAAQ,YAAY,KACnB,OAAO,CAAC,UAAU,CAyLpB,CAAC"}
1
+ {"version":3,"file":"initProstgles.d.ts","sourceRoot":"","sources":["../lib/initProstgles.ts"],"names":[],"mappings":"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"}
@@ -81,11 +81,13 @@ const initProstgles = async function (onReady, reason) {
81
81
  const db = this.db;
82
82
  const pgp = this.pgp;
83
83
  try {
84
+ await this.cleanupContext();
84
85
  /* 2. Execute any SQL file if provided */
85
86
  await (0, runSQLFile_1.runSQLFile)(this);
86
- await this.refreshDBO();
87
+ await this.rebuildDBO();
87
88
  await this.initTableConfig(reason);
88
- await this.refreshDBO();
89
+ await this.rebuildDBO();
90
+ await this.createContext(reason);
89
91
  this.initRestApi();
90
92
  this.schemaWatch = await SchemaWatch_1.SchemaWatch.create(this.dboBuilder);
91
93
  if (this.opts.publish) {
@@ -115,6 +117,7 @@ const initProstgles = async function (onReady, reason) {
115
117
  db: this.db,
116
118
  tables: this.dboBuilder.tables,
117
119
  reason,
120
+ context: this.context,
118
121
  }, async (...args) => {
119
122
  await (0, updateConfiguration_1.updateConfiguration)(this, onReady, ...args);
120
123
  });
@@ -123,8 +126,12 @@ const initProstgles = async function (onReady, reason) {
123
126
  console.error("Prostgles: Error within onReady: \n", err);
124
127
  }
125
128
  this.loaded = true;
129
+ const getContext = () => this.context;
126
130
  const initResult = {
127
131
  db: this.dbo,
132
+ get context() {
133
+ return getContext();
134
+ },
128
135
  sql: this.dboBuilder.sql,
129
136
  _db: db,
130
137
  pgp,
@@ -155,6 +162,7 @@ const initProstgles = async function (onReady, reason) {
155
162
  this.opts.io.engine.close();
156
163
  }
157
164
  }
165
+ await this.cleanupContext();
158
166
  await this.dboBuilder.destroy();
159
167
  this.authHandler.destroy();
160
168
  await this.tableConfigurator?.destroy();
@@ -171,6 +179,7 @@ const initProstgles = async function (onReady, reason) {
171
179
  return initResult;
172
180
  }
173
181
  catch (e) {
182
+ await this.cleanupContext();
174
183
  console.trace(e);
175
184
  throw "init issues: " + e.toString();
176
185
  }
@@ -1 +1 @@
1
- {"version":3,"file":"initProstgles.js","sourceRoot":"","sources":["../lib/initProstgles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initProstgles.js","sourceRoot":"","sources":["../lib/initProstgles.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { OnReadyCallbackBasic, UpdatableOptions } from "./initProstgles";
2
2
  import type { Prostgles } from "./Prostgles";
3
- export declare const updateConfiguration: (prgl: Prostgles, onReady: OnReadyCallbackBasic, newOpts: UpdatableOptions, force?: true) => Promise<void>;
3
+ export declare const updateConfiguration: (prgl: Prostgles, onReady: OnReadyCallbackBasic, newOpts: UpdatableOptions<void, any, any>, force?: true) => Promise<void>;
4
4
  /**
5
5
  * Changes that do not affect the server so onReady does not need to be called again
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"updateConfiguration.d.ts","sourceRoot":"","sources":["../lib/updateConfiguration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,mBAAmB,GAC9B,MAAM,SAAS,EACf,SAAS,oBAAoB,EAC7B,SAAS,gBAAgB,EACzB,QAAQ,IAAI,kBAoEb,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,+EAOc,CAAC"}
1
+ {"version":3,"file":"updateConfiguration.d.ts","sourceRoot":"","sources":["../lib/updateConfiguration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,mBAAmB,GAC9B,MAAM,SAAS,EACf,SAAS,oBAAoB,EAC7B,SAAS,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EACzC,QAAQ,IAAI,kBAoEb,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,+EAOc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateConfiguration.js","sourceRoot":"","sources":["../lib/updateConfiguration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updateConfiguration.js","sourceRoot":"","sources":["../lib/updateConfiguration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import assert from "node:assert";
2
+ import { describe, test } from "node:test";
3
+ import type { EventInfo } from "../Logging";
4
+ import type { Prostgles } from "../Prostgles";
5
+ import { DboBuilder } from "./DboBuilder";
6
+
7
+ const createDboBuilder = ({
8
+ events,
9
+ logs,
10
+ }: {
11
+ events: string[];
12
+ logs: EventInfo[];
13
+ }) => {
14
+ const transaction = {};
15
+ const prostgles = {
16
+ db: {
17
+ tx: async (callback: (tx: object) => unknown) => {
18
+ const result = await callback(transaction);
19
+ events.push("committed");
20
+ return result;
21
+ },
22
+ },
23
+ opts: {
24
+ onLog: (event: EventInfo) => {
25
+ logs.push(event);
26
+ },
27
+ },
28
+ } as unknown as Prostgles;
29
+ const dboBuilder = Reflect.construct(DboBuilder, [prostgles]) as DboBuilder;
30
+ dboBuilder.tablesOrViews = [];
31
+ return dboBuilder;
32
+ };
33
+
34
+ void describe("DboBuilder onCommit", async () => {
35
+ await test("awaits callbacks after commit and logs callback errors", async () => {
36
+ const events: string[] = [];
37
+ const logs: EventInfo[] = [];
38
+ const dboBuilder = createDboBuilder({ events, logs });
39
+
40
+ const result = await dboBuilder.getTX((_dbTX, transaction) => {
41
+ dboBuilder.registerOnCommitCallback(transaction, async () => {
42
+ await Promise.resolve();
43
+ events.push("first callback");
44
+ throw new Error("callback failed");
45
+ });
46
+ dboBuilder.registerOnCommitCallback(transaction, () => {
47
+ events.push("second callback");
48
+ return 123;
49
+ });
50
+ events.push("transaction callback");
51
+ return "mutation result";
52
+ });
53
+
54
+ assert.equal(result, "mutation result");
55
+ assert.deepEqual(events, [
56
+ "transaction callback",
57
+ "committed",
58
+ "first callback",
59
+ "second callback",
60
+ ]);
61
+ assert.equal(logs.length, 1);
62
+ assert.equal(logs[0]?.type, "debug");
63
+ if (logs[0]?.type === "debug") {
64
+ assert.equal(logs[0].command, "DboBuilder.onCommit");
65
+ }
66
+ });
67
+
68
+ await test("discards callbacks on rollback", async () => {
69
+ const events: string[] = [];
70
+ const dboBuilder = createDboBuilder({ events, logs: [] });
71
+
72
+ await assert.rejects(
73
+ dboBuilder.getTX((_dbTX, transaction) => {
74
+ dboBuilder.registerOnCommitCallback(transaction, () => {
75
+ events.push("callback");
76
+ });
77
+ throw new Error("rollback");
78
+ }),
79
+ /rollback/,
80
+ );
81
+
82
+ assert.deepEqual(events, []);
83
+ });
84
+ });
@@ -8,6 +8,7 @@ import type { Join } from "../ProstglesTypes";
8
8
  import { PubSubManager } from "../PubSubManager/PubSubManager";
9
9
  import { getCreatePubSubManagerError } from "../PubSubManager/getCreatePubSubManagerError";
10
10
  import type { PublishParser } from "../PublishParser/PublishParser";
11
+ import type { OnCommitCallback } from "../PublishParser/publishTypesAndUtils";
11
12
  import type { ServerFunctionDefinition } from "../PublishParser/defineServerFunction";
12
13
  import { getQueryErrorPositionInfo } from "../TableConfig/runSQLFile";
13
14
  import type { Graph } from "../shortestPath";
@@ -139,6 +140,45 @@ export class DboBuilder {
139
140
 
140
141
  onSchemaChange?: (event: { command: string; query: string }) => void;
141
142
 
143
+ private readonly onCommitCallbacksByTransaction = new WeakMap<
144
+ object,
145
+ OnCommitCallback[]
146
+ >();
147
+
148
+ registerOnCommitCallback = (transaction: object, callback: OnCommitCallback) => {
149
+ const callbacks = this.onCommitCallbacksByTransaction.get(transaction);
150
+ if (!callbacks) {
151
+ throw new Error("onCommit can only be called while its transaction is active");
152
+ }
153
+ callbacks.push(callback);
154
+ };
155
+
156
+ private runOnCommitCallbacks = async (callbacks: OnCommitCallback[]) => {
157
+ for (const callback of callbacks) {
158
+ const start = Date.now();
159
+ try {
160
+ await callback();
161
+ } catch (rawError) {
162
+ const error = getSerialisableError(rawError);
163
+ const onLog = this.prostgles.opts.onLog;
164
+ if (!onLog) {
165
+ console.error("DboBuilder.onCommit callback failed", error);
166
+ continue;
167
+ }
168
+ try {
169
+ await onLog({
170
+ type: "debug",
171
+ command: "DboBuilder.onCommit",
172
+ duration: Date.now() - start,
173
+ error,
174
+ });
175
+ } catch (logError) {
176
+ console.error("DboBuilder.onCommit error logging failed", logError, error);
177
+ }
178
+ }
179
+ }
180
+ };
181
+
142
182
  public static create = async (prostgles: Prostgles): Promise<DboBuilder> => {
143
183
  const res = new DboBuilder(prostgles);
144
184
  return await res.init();
@@ -379,22 +419,37 @@ export class DboBuilder {
379
419
  };
380
420
 
381
421
  getTX = async <R, TH extends DbTxTableHandlers>(cb: TxCB<Promise<R> | R, TH>) => {
382
- return this.db.tx((t) => {
383
- const dbTX: DbTxTableHandlers = {};
384
- this.tablesOrViews?.map((tov) => {
385
- dbTX[tov.name] = new TableHandler({
386
- db: this.db,
387
- tableOrViewInfo: tov,
388
- dboBuilder: this,
389
- tx: { t, dbTX },
390
- config: this.prostgles.mergedTableConfig.tableConfig?.[tov.name],
391
- hooks: this.prostgles.mergedTableConfig.tableHooks?.[tov.name],
392
- joinPaths: this.shortestJoinPaths,
422
+ const onCommitCallbacks: OnCommitCallback[] = [];
423
+ let transaction: object | undefined;
424
+ let result: R;
425
+ try {
426
+ result = await this.db.tx((t) => {
427
+ transaction = t;
428
+ this.onCommitCallbacksByTransaction.set(transaction, onCommitCallbacks);
429
+
430
+ const dbTX: DbTxTableHandlers = {};
431
+ this.tablesOrViews?.map((tov) => {
432
+ dbTX[tov.name] = new TableHandler({
433
+ db: this.db,
434
+ tableOrViewInfo: tov,
435
+ dboBuilder: this,
436
+ tx: { t, dbTX },
437
+ config: this.prostgles.mergedTableConfig.tableConfig?.[tov.name],
438
+ hooks: this.prostgles.mergedTableConfig.tableHooks?.[tov.name],
439
+ joinPaths: this.shortestJoinPaths,
440
+ });
393
441
  });
442
+
443
+ return cb(dbTX as TH, t);
394
444
  });
445
+ } catch (error) {
446
+ if (transaction) this.onCommitCallbacksByTransaction.delete(transaction);
447
+ throw error;
448
+ }
395
449
 
396
- return cb(dbTX as TH, t);
397
- });
450
+ if (transaction) this.onCommitCallbacksByTransaction.delete(transaction);
451
+ await this.runOnCommitCallbacks(onCommitCallbacks);
452
+ return result;
398
453
  };
399
454
 
400
455
  cacheDBTypes = cacheDBTypes.bind(this);
@@ -63,7 +63,7 @@ export class TableHandler extends ViewHandler {
63
63
  tableOrViewInfo: TableSchema;
64
64
  dboBuilder: DboBuilder;
65
65
  config: TableDefinition<any> | undefined;
66
- hooks: TableHooksDefinition | undefined;
66
+ hooks: TableHooksDefinition<AnyObject, TableHandlers, any> | undefined;
67
67
  tx?: { t: pgPromise.ITask<{}>; dbTX: TableHandlers };
68
68
  joinPaths?: JoinPaths;
69
69
  }) {
@@ -98,6 +98,7 @@ export class TableHandler extends ViewHandler {
98
98
  if (!isApplicable) continue;
99
99
  const hookResult = await hook.validate({
100
100
  command,
101
+ context: this.dboBuilder.prostgles.context,
101
102
  data: newRow,
102
103
  dbx: this.getFinalDbo(localParams),
103
104
  localParams,
@@ -156,6 +156,7 @@ export async function _delete(
156
156
  );
157
157
  }
158
158
  const result = await onInsteadOfDelete({
159
+ context: this.dboBuilder.prostgles.context,
159
160
  queryType,
160
161
  isOneOrNone,
161
162
  dbx: transaction.dbTX,
@@ -47,6 +47,8 @@ export const executeAfterHooksCheckAndPostValidation = async ({
47
47
  const txParams = {
48
48
  tx: transaction.t,
49
49
  dbx: transaction.dbTX,
50
+ onCommit: (callback: Parameters<typeof tableHandler.dboBuilder.registerOnCommitCallback>[1]) =>
51
+ tableHandler.dboBuilder.registerOnCommitCallback(transaction.t, callback),
50
52
  };
51
53
 
52
54
  const txKey = transaction.t as unknown as object;
@@ -69,6 +71,7 @@ export const executeAfterHooksCheckAndPostValidation = async ({
69
71
  ...txParams,
70
72
  command,
71
73
  data,
74
+ context: tableHandler.dboBuilder.prostgles.context,
72
75
  } as const;
73
76
 
74
77
  for (const hook of applicableHooks) {
@@ -121,6 +124,7 @@ export const executeAfterHooksCheckAndPostValidation = async ({
121
124
  data: applicableData,
122
125
  rows: applicableRows,
123
126
  localParams,
127
+ context: tableHandler.dboBuilder.prostgles.context,
124
128
  });
125
129
  }
126
130
  }
@@ -55,7 +55,7 @@ export class ViewHandler {
55
55
  joinPaths?: JoinPaths;
56
56
  dboBuilder: DboBuilder;
57
57
  config: TableDefinition<any> | undefined;
58
- hooks: TableHooksDefinition | undefined;
58
+ hooks: TableHooksDefinition<AnyObject, TableHandlers, any> | undefined;
59
59
 
60
60
  tx?: {
61
61
  t: pgPromise.ITask<{}>;
@@ -83,7 +83,7 @@ export class ViewHandler {
83
83
  tableOrViewInfo: TableSchema;
84
84
  dboBuilder: DboBuilder;
85
85
  config: TableDefinition<any> | undefined;
86
- hooks: TableHooksDefinition | undefined;
86
+ hooks: TableHooksDefinition<AnyObject, TableHandlers, any> | undefined;
87
87
  tx?: { t: pgPromise.ITask<{}>; dbTX: TableHandlers };
88
88
  joinPaths?: JoinPaths;
89
89
  }) {
package/lib/Logging.ts CHANGED
@@ -175,6 +175,7 @@ export namespace EventTypes {
175
175
  | "tableConfigurator.init.end"
176
176
  | "initFileManager.runQuery"
177
177
  | "DboBuilder.getTablesForSchemaPostgresSQL"
178
+ | "DboBuilder.onCommit"
178
179
  | "PubSubManager.create";
179
180
  data?: AnyObject;
180
181
  }
package/lib/Prostgles.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type pgPromise from "pg-promise";
2
2
  import { AuthHandler } from "./Auth/AuthHandler";
3
- import type { OnInitReason } from "./initProstgles";
3
+ import type { SessionUser } from "./Auth/AuthTypes";
4
+ import type { ContextCleanup, OnInitReason } from "./initProstgles";
4
5
  import { initProstgles } from "./initProstgles";
5
6
  import type { SchemaWatch } from "./SchemaWatch/SchemaWatch";
6
7
  import { getClientSchema } from "./WebsocketAPI/getClientSchema";
@@ -68,7 +69,7 @@ export class Prostgles {
68
69
  * Used to manage concurrent prostgles connections to the same database
69
70
  */
70
71
  readonly appId = randomUUID();
71
- opts: ProstglesInitOptions = {
72
+ opts: ProstglesInitOptions<void, SessionUser, any> = {
72
73
  DEBUG_MODE: false,
73
74
  dbConnection: {
74
75
  host: "localhost",
@@ -121,8 +122,8 @@ export class Prostgles {
121
122
  return this.opts.fileTable?.tableName === tableName;
122
123
  }
123
124
 
124
- constructor(params: ProstglesInitOptions) {
125
- const config: Record<keyof ProstglesInitOptions, 1> = {
125
+ constructor(params: ProstglesInitOptions<void, SessionUser, any>) {
126
+ const config: Record<keyof ProstglesInitOptions<void, SessionUser, any>, 1> = {
126
127
  transactions: 1,
127
128
  joins: 1,
128
129
  tsGeneratedTypesDir: 1,
@@ -153,6 +154,7 @@ export class Prostgles {
153
154
  restApi: 1,
154
155
  testRulesOnConnect: 1,
155
156
  modifyClientSchema: 1,
157
+ createContext: 1,
156
158
  };
157
159
  const unknownParams = Object.keys(params).filter(
158
160
  (key: string) => !Object.keys(config).includes(key),
@@ -211,10 +213,55 @@ export class Prostgles {
211
213
  }
212
214
  }
213
215
 
214
- /**
215
- * Will re-create the dbo object
216
- */
217
- refreshDBO = async () => {
216
+ context: unknown;
217
+ private contextCleanups: ContextCleanup[] = [];
218
+
219
+ cleanupContext = async () => {
220
+ const cleanups = this.contextCleanups.splice(0).reverse();
221
+ this.context = undefined;
222
+ for (const cleanup of cleanups) {
223
+ try {
224
+ await cleanup();
225
+ } catch (error) {
226
+ console.error("Prostgles: Context cleanup failed", error);
227
+ }
228
+ }
229
+ };
230
+
231
+ createContext = async (reason: OnInitReason) => {
232
+ const createContext = this.opts.createContext;
233
+ if (!createContext) {
234
+ this.context = undefined;
235
+ return;
236
+ }
237
+ if (!this.db || !this.dbo) throw new Error("Cannot create context before the DBO is ready");
238
+
239
+ const cleanups: ContextCleanup[] = [];
240
+ try {
241
+ const context = await createContext({
242
+ db: this.db,
243
+ dbo: this.dbo as any,
244
+ sql: this.dboBuilder.sql,
245
+ tables: this.dboBuilder.tables,
246
+ reason,
247
+ onCleanup: (cleanup) => cleanups.push(cleanup),
248
+ });
249
+ this.context = context;
250
+ this.contextCleanups = cleanups;
251
+ } catch (error) {
252
+ for (const cleanup of cleanups.reverse()) {
253
+ try {
254
+ await cleanup();
255
+ } catch (cleanupError) {
256
+ console.error("Prostgles: Context cleanup failed", cleanupError);
257
+ }
258
+ }
259
+ throw error;
260
+ }
261
+ };
262
+
263
+ /** Rebuilds the DBO without changing the application context. */
264
+ rebuildDBO = async () => {
218
265
  await this.opts.onLog?.({
219
266
  type: "debug",
220
267
  command: "refreshDBO.start",
@@ -236,6 +283,14 @@ export class Prostgles {
236
283
  return this.dbo;
237
284
  };
238
285
 
286
+ /** Rebuilds the DBO and replaces the application context. */
287
+ refreshDBO = async () => {
288
+ await this.cleanupContext();
289
+ const dbo = await this.rebuildDBO();
290
+ await this.createContext({ type: "dbo.refresh" });
291
+ return dbo;
292
+ };
293
+
239
294
  initRestApi = () => {
240
295
  this.restApi?.destroy();
241
296
  this.restApi = this.opts.restApi && new RestApi({ prostgles: this, ...this.opts.restApi });