@memberjunction/server 2.76.0 → 2.78.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +61 -2
  2. package/dist/apolloServer/index.d.ts.map +1 -1
  3. package/dist/apolloServer/index.js +1 -3
  4. package/dist/apolloServer/index.js.map +1 -1
  5. package/dist/auth/exampleNewUserSubClass.d.ts +1 -1
  6. package/dist/auth/exampleNewUserSubClass.d.ts.map +1 -1
  7. package/dist/auth/exampleNewUserSubClass.js +1 -1
  8. package/dist/auth/exampleNewUserSubClass.js.map +1 -1
  9. package/dist/auth/newUsers.js.map +1 -1
  10. package/dist/context.d.ts +5 -0
  11. package/dist/context.d.ts.map +1 -1
  12. package/dist/context.js +34 -3
  13. package/dist/context.js.map +1 -1
  14. package/dist/entitySubclasses/entityPermissions.server.d.ts +2 -2
  15. package/dist/entitySubclasses/entityPermissions.server.d.ts.map +1 -1
  16. package/dist/entitySubclasses/entityPermissions.server.js +2 -2
  17. package/dist/entitySubclasses/entityPermissions.server.js.map +1 -1
  18. package/dist/generated/generated.d.ts +1781 -1738
  19. package/dist/generated/generated.d.ts.map +1 -1
  20. package/dist/generated/generated.js +6073 -5327
  21. package/dist/generated/generated.js.map +1 -1
  22. package/dist/generic/ResolverBase.d.ts +20 -21
  23. package/dist/generic/ResolverBase.d.ts.map +1 -1
  24. package/dist/generic/ResolverBase.js +75 -59
  25. package/dist/generic/ResolverBase.js.map +1 -1
  26. package/dist/generic/RunViewResolver.d.ts +8 -8
  27. package/dist/generic/RunViewResolver.d.ts.map +1 -1
  28. package/dist/generic/RunViewResolver.js +50 -48
  29. package/dist/generic/RunViewResolver.js.map +1 -1
  30. package/dist/index.d.ts +1 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +1 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/resolvers/AskSkipResolver.d.ts +6 -6
  35. package/dist/resolvers/AskSkipResolver.d.ts.map +1 -1
  36. package/dist/resolvers/AskSkipResolver.js +33 -21
  37. package/dist/resolvers/AskSkipResolver.js.map +1 -1
  38. package/dist/resolvers/CreateQueryResolver.d.ts +1 -1
  39. package/dist/resolvers/CreateQueryResolver.d.ts.map +1 -1
  40. package/dist/resolvers/CreateQueryResolver.js +15 -9
  41. package/dist/resolvers/CreateQueryResolver.js.map +1 -1
  42. package/dist/resolvers/EntityResolver.d.ts +1 -2
  43. package/dist/resolvers/EntityResolver.d.ts.map +1 -1
  44. package/dist/resolvers/EntityResolver.js +17 -9
  45. package/dist/resolvers/EntityResolver.js.map +1 -1
  46. package/dist/resolvers/FileCategoryResolver.d.ts +1 -1
  47. package/dist/resolvers/FileCategoryResolver.d.ts.map +1 -1
  48. package/dist/resolvers/FileCategoryResolver.js +9 -9
  49. package/dist/resolvers/FileCategoryResolver.js.map +1 -1
  50. package/dist/resolvers/FileResolver.d.ts.map +1 -1
  51. package/dist/resolvers/FileResolver.js +3 -1
  52. package/dist/resolvers/FileResolver.js.map +1 -1
  53. package/dist/resolvers/MergeRecordsResolver.d.ts.map +1 -1
  54. package/dist/resolvers/MergeRecordsResolver.js +2 -1
  55. package/dist/resolvers/MergeRecordsResolver.js.map +1 -1
  56. package/dist/resolvers/ReportResolver.js.map +1 -1
  57. package/dist/resolvers/SyncDataResolver.d.ts +8 -8
  58. package/dist/resolvers/SyncDataResolver.d.ts.map +1 -1
  59. package/dist/resolvers/SyncDataResolver.js +19 -19
  60. package/dist/resolvers/SyncDataResolver.js.map +1 -1
  61. package/dist/resolvers/SyncRolesUsersResolver.d.ts +10 -10
  62. package/dist/resolvers/SyncRolesUsersResolver.d.ts.map +1 -1
  63. package/dist/resolvers/SyncRolesUsersResolver.js +19 -19
  64. package/dist/resolvers/SyncRolesUsersResolver.js.map +1 -1
  65. package/dist/resolvers/TransactionGroupResolver.d.ts.map +1 -1
  66. package/dist/resolvers/TransactionGroupResolver.js.map +1 -1
  67. package/dist/resolvers/UserFavoriteResolver.d.ts +2 -2
  68. package/dist/resolvers/UserFavoriteResolver.d.ts.map +1 -1
  69. package/dist/resolvers/UserFavoriteResolver.js +7 -4
  70. package/dist/resolvers/UserFavoriteResolver.js.map +1 -1
  71. package/dist/resolvers/UserResolver.d.ts +3 -3
  72. package/dist/resolvers/UserResolver.d.ts.map +1 -1
  73. package/dist/resolvers/UserResolver.js +10 -6
  74. package/dist/resolvers/UserResolver.js.map +1 -1
  75. package/dist/resolvers/UserViewResolver.d.ts +2 -2
  76. package/dist/resolvers/UserViewResolver.d.ts.map +1 -1
  77. package/dist/resolvers/UserViewResolver.js +11 -6
  78. package/dist/resolvers/UserViewResolver.js.map +1 -1
  79. package/dist/scheduler/LearningCycleScheduler.d.ts.map +1 -1
  80. package/dist/scheduler/LearningCycleScheduler.js +7 -1
  81. package/dist/scheduler/LearningCycleScheduler.js.map +1 -1
  82. package/dist/types.d.ts +7 -4
  83. package/dist/types.d.ts.map +1 -1
  84. package/dist/types.js +4 -0
  85. package/dist/types.js.map +1 -1
  86. package/dist/util.d.ts +8 -1
  87. package/dist/util.d.ts.map +1 -1
  88. package/dist/util.js +28 -0
  89. package/dist/util.js.map +1 -1
  90. package/package.json +34 -34
  91. package/src/apolloServer/index.ts +3 -3
  92. package/src/auth/exampleNewUserSubClass.ts +3 -2
  93. package/src/auth/newUsers.ts +1 -1
  94. package/src/context.ts +49 -9
  95. package/src/entitySubclasses/entityPermissions.server.ts +3 -3
  96. package/src/generated/generated.ts +5709 -5049
  97. package/src/generic/ResolverBase.ts +103 -86
  98. package/src/generic/RunViewResolver.ts +55 -54
  99. package/src/index.ts +1 -1
  100. package/src/resolvers/AskSkipResolver.ts +44 -23
  101. package/src/resolvers/CreateQueryResolver.ts +19 -11
  102. package/src/resolvers/EntityResolver.ts +18 -9
  103. package/src/resolvers/FileCategoryResolver.ts +12 -9
  104. package/src/resolvers/FileResolver.ts +4 -2
  105. package/src/resolvers/MergeRecordsResolver.ts +2 -1
  106. package/src/resolvers/ReportResolver.ts +1 -1
  107. package/src/resolvers/SyncDataResolver.ts +21 -21
  108. package/src/resolvers/SyncRolesUsersResolver.ts +24 -21
  109. package/src/resolvers/TransactionGroupResolver.ts +1 -1
  110. package/src/resolvers/UserFavoriteResolver.ts +7 -5
  111. package/src/resolvers/UserResolver.ts +10 -6
  112. package/src/resolvers/UserViewResolver.ts +13 -7
  113. package/src/scheduler/LearningCycleScheduler.ts +10 -4
  114. package/src/types.ts +14 -4
  115. package/src/util.ts +45 -2
  116. package/dist/apolloServer/TransactionPlugin.d.ts +0 -4
  117. package/dist/apolloServer/TransactionPlugin.d.ts.map +0 -1
  118. package/dist/apolloServer/TransactionPlugin.js +0 -46
  119. package/dist/apolloServer/TransactionPlugin.js.map +0 -1
  120. package/src/apolloServer/TransactionPlugin.ts +0 -53
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AA0BxE,MAAM,OAAO,cAAc;IACzB,UAAU,CAAqB;IAC/B,IAAI,CAAS;IACb,IAAI,CAAS;IACb,QAAQ,CAAU;IAClB,QAAQ,CAAS;IACjB,QAAQ,CAAS;IACjB,IAAI,CAAiD;IAErD,YAAY,IAA4J;QACtK,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;CACF;AAAA,CAAC;AA2BF,MAAM,OAAO,aAAa;IACxB,IAAI,CAA6E;IACjF,WAAW,CAAmB;IAC9B,WAAW,CAAc;IACzB,UAAU,CAAW;CACtB;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAA2B,EAAE,WAA6B,EAAE,WAAwB,EAAE,SAAe;IACpI,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;IAClC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,KAAK,CAAC,UAAU,GAAG,MAAM,aAAa,EAAE,CAAC;IAEzC,MAAM,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;IAC1B,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;IACjB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1B,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC;IACvC,GAAG,CAAC,SAAS,GAAG,oBAAoB,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAgCxE,MAAM,OAAO,YAAY;IACvB,QAAQ,CAAuB;IAC/B,IAAI,CAAiD;CACtD;AAED,MAAM,OAAO,cAAc;IACzB,UAAU,CAAqB;IAC/B,IAAI,CAAS;IACb,IAAI,CAAS;IACb,QAAQ,CAAU;IAClB,QAAQ,CAAS;IACjB,QAAQ,CAAS;IACjB,IAAI,CAAiD;IAErD,YAAY,IAA4J;QACtK,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;CACF;AAAA,CAAC;AA0BF,MAAM,OAAO,aAAa;IACxB,IAAI,CAA6E;IACjF,WAAW,CAAmB;IAC9B,WAAW,CAAc;IACzB,UAAU,CAAW;CACtB;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAA2B,EAAE,WAA6B,EAAE,WAAwB,EAAE,SAAe;IACpI,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;IAClC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,KAAK,CAAC,UAAU,GAAG,MAAM,aAAa,EAAE,CAAC;IAEzC,MAAM,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;IAC1B,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;IACjB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1B,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC;IACvC,GAAG,CAAC,SAAS,GAAG,oBAAoB,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC"}
package/dist/util.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import { DataSourceInfo } from './types';
1
+ import { DataSourceInfo, ProviderInfo } from './types';
2
2
  import sql from 'mssql';
3
+ import { DatabaseProviderBase } from '@memberjunction/core';
3
4
  type StreamCallback = (jsonObject: any) => void;
4
5
  export declare function sendPostRequest(url: string, payload: any, useCompression: boolean, headers: Record<string, string> | null, streamCallback?: StreamCallback): Promise<any[]>;
5
6
  export declare function GetReadOnlyDataSource(dataSources: DataSourceInfo[], options?: {
@@ -7,6 +8,12 @@ export declare function GetReadOnlyDataSource(dataSources: DataSourceInfo[], opt
7
8
  }): sql.ConnectionPool & {
8
9
  query: (sql: string, params?: any) => Promise<any[]>;
9
10
  };
11
+ export declare function GetReadOnlyProvider(providers: Array<ProviderInfo>, options?: {
12
+ allowFallbackToReadWrite: boolean;
13
+ }): DatabaseProviderBase;
14
+ export declare function GetReadWriteProvider(providers: Array<ProviderInfo>, options?: {
15
+ allowFallbackToReadOnly: boolean;
16
+ }): DatabaseProviderBase;
10
17
  export declare function GetReadWriteDataSource(dataSources: DataSourceInfo[]): sql.ConnectionPool & {
11
18
  query: (sql: string, params?: any) => Promise<any[]>;
12
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,GAAG,MAAM,OAAO,CAAC;AAIxB,KAAK,cAAc,GAAG,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;AAahD,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAyFjL;AASC,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,OAAO,CAAC,EAAE;IAAC,wBAAwB,EAAE,OAAO,CAAA;CAAC,GAAG,GAAG,CAAC,cAAc,GAAG;IAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;CAAE,CAcjM;AAOD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,cAAc,GAAG;IAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;CAAE,CAMnJ;AAMD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,GAAG;IAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;CAAE,CAmBrJ"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAI5D,KAAK,cAAc,GAAG,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;AAahD,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAyFjL;AASC,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,OAAO,CAAC,EAAE;IAAC,wBAAwB,EAAE,OAAO,CAAA;CAAC,GAAG,GAAG,CAAC,cAAc,GAAG;IAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;CAAE,CAcjM;AAOD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,EAAE;IAAC,wBAAwB,EAAE,OAAO,CAAA;CAAC,GAAG,oBAAoB,CAcvI;AAOD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,EAAE;IAAC,uBAAuB,EAAE,OAAO,CAAA;CAAC,GAAG,oBAAoB,CAcvI;AAOD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,cAAc,GAAG;IAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;CAAE,CAMnJ;AAMD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,GAAG;IAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;CAAE,CAmBrJ"}
package/dist/util.js CHANGED
@@ -102,6 +102,34 @@ export function GetReadOnlyDataSource(dataSources, options) {
102
102
  }
103
103
  throw new Error('No suitable data source found');
104
104
  }
105
+ export function GetReadOnlyProvider(providers, options) {
106
+ if (!providers || providers.length === 0)
107
+ return null;
108
+ const readOnlyProvider = providers.find((p) => p.type === 'Read-Only');
109
+ if (readOnlyProvider) {
110
+ return readOnlyProvider.provider;
111
+ }
112
+ else if (options?.allowFallbackToReadWrite) {
113
+ return providers[0].provider;
114
+ }
115
+ else {
116
+ return null;
117
+ }
118
+ }
119
+ export function GetReadWriteProvider(providers, options) {
120
+ if (!providers || providers.length === 0)
121
+ return null;
122
+ const readWriteProvider = providers.find((p) => p.type === 'Read-Write');
123
+ if (readWriteProvider) {
124
+ return readWriteProvider.provider;
125
+ }
126
+ else if (options?.allowFallbackToReadOnly) {
127
+ return GetReadOnlyProvider(providers, { allowFallbackToReadWrite: false });
128
+ }
129
+ else {
130
+ return null;
131
+ }
132
+ }
105
133
  export function GetReadWriteDataSource(dataSources) {
106
134
  const readWriteDataSource = dataSources.find((ds) => ds.type === 'Read-Write');
107
135
  if (readWriteDataSource) {
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/server",
3
- "version": "2.76.0",
3
+ "version": "2.78.0",
4
4
  "description": "MemberJunction: This project provides API access via GraphQL to the common data store.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./src/index.ts",
@@ -22,39 +22,39 @@
22
22
  "dependencies": {
23
23
  "@apollo/server": "^4.9.1",
24
24
  "@graphql-tools/utils": "^10.0.1",
25
- "@memberjunction/actions": "2.76.0",
26
- "@memberjunction/ai": "2.76.0",
27
- "@memberjunction/ai-core-plus": "2.76.0",
28
- "@memberjunction/ai-agents": "2.76.0",
29
- "@memberjunction/aiengine": "2.76.0",
30
- "@memberjunction/ai-prompts": "2.76.0",
31
- "@memberjunction/ai-agent-manager-actions": "2.76.0",
32
- "@memberjunction/ai-mistral": "2.76.0",
33
- "@memberjunction/ai-openai": "2.76.0",
34
- "@memberjunction/ai-anthropic": "2.76.0",
35
- "@memberjunction/ai-groq": "2.76.0",
36
- "@memberjunction/ai-cerebras": "2.76.0",
37
- "@memberjunction/ai-vectors-pinecone": "2.76.0",
38
- "@memberjunction/core": "2.76.0",
39
- "@memberjunction/core-actions": "2.76.0",
40
- "@memberjunction/actions-bizapps-accounting": "2.76.0",
41
- "@memberjunction/actions-bizapps-crm": "2.76.0",
42
- "@memberjunction/actions-bizapps-lms": "2.76.0",
43
- "@memberjunction/actions-bizapps-social": "2.76.0",
44
- "@memberjunction/core-entities": "2.76.0",
45
- "@memberjunction/core-entities-server": "2.76.0",
46
- "@memberjunction/data-context": "2.76.0",
47
- "@memberjunction/data-context-server": "2.76.0",
48
- "@memberjunction/doc-utils": "2.76.0",
49
- "@memberjunction/entity-communications-server": "2.76.0",
50
- "@memberjunction/external-change-detection": "2.76.0",
51
- "@memberjunction/global": "2.76.0",
52
- "@memberjunction/graphql-dataprovider": "2.76.0",
53
- "@memberjunction/queue": "2.76.0",
54
- "@memberjunction/skip-types": "2.76.0",
55
- "@memberjunction/sqlserver-dataprovider": "2.76.0",
56
- "@memberjunction/storage": "2.76.0",
57
- "@memberjunction/templates": "2.76.0",
25
+ "@memberjunction/actions": "2.78.0",
26
+ "@memberjunction/ai": "2.78.0",
27
+ "@memberjunction/ai-core-plus": "2.78.0",
28
+ "@memberjunction/ai-agents": "2.78.0",
29
+ "@memberjunction/aiengine": "2.78.0",
30
+ "@memberjunction/ai-prompts": "2.78.0",
31
+ "@memberjunction/ai-agent-manager-actions": "2.78.0",
32
+ "@memberjunction/ai-mistral": "2.78.0",
33
+ "@memberjunction/ai-openai": "2.78.0",
34
+ "@memberjunction/ai-anthropic": "2.78.0",
35
+ "@memberjunction/ai-groq": "2.78.0",
36
+ "@memberjunction/ai-cerebras": "2.78.0",
37
+ "@memberjunction/ai-vectors-pinecone": "2.78.0",
38
+ "@memberjunction/core": "2.78.0",
39
+ "@memberjunction/core-actions": "2.78.0",
40
+ "@memberjunction/actions-bizapps-accounting": "2.78.0",
41
+ "@memberjunction/actions-bizapps-crm": "2.78.0",
42
+ "@memberjunction/actions-bizapps-lms": "2.78.0",
43
+ "@memberjunction/actions-bizapps-social": "2.78.0",
44
+ "@memberjunction/core-entities": "2.78.0",
45
+ "@memberjunction/core-entities-server": "2.78.0",
46
+ "@memberjunction/data-context": "2.78.0",
47
+ "@memberjunction/data-context-server": "2.78.0",
48
+ "@memberjunction/doc-utils": "2.78.0",
49
+ "@memberjunction/entity-communications-server": "2.78.0",
50
+ "@memberjunction/external-change-detection": "2.78.0",
51
+ "@memberjunction/global": "2.78.0",
52
+ "@memberjunction/graphql-dataprovider": "2.78.0",
53
+ "@memberjunction/queue": "2.78.0",
54
+ "@memberjunction/skip-types": "2.78.0",
55
+ "@memberjunction/sqlserver-dataprovider": "2.78.0",
56
+ "@memberjunction/storage": "2.78.0",
57
+ "@memberjunction/templates": "2.78.0",
58
58
  "@types/compression": "^1.7.5",
59
59
  "@types/cors": "^2.8.13",
60
60
  "@types/jsonwebtoken": "9.0.6",
@@ -4,7 +4,8 @@ import { Disposable } from 'graphql-ws';
4
4
  import { Server } from 'http';
5
5
  import { enableIntrospection } from '../config.js';
6
6
  import { AppContext } from '../types.js';
7
- import { TransactionPlugin } from './TransactionPlugin.js';
7
+ import { Metadata } from '@memberjunction/core';
8
+ import { SQLServerDataProvider } from '@memberjunction/sqlserver-dataprovider';
8
9
 
9
10
  const buildApolloServer = (
10
11
  configOverride: ApolloServerOptions<AppContext>,
@@ -15,7 +16,6 @@ const buildApolloServer = (
15
16
  cache: 'bounded',
16
17
  plugins: [
17
18
  ApolloServerPluginDrainHttpServer({ httpServer }),
18
- TransactionPlugin,
19
19
  {
20
20
  async serverWillStart() {
21
21
  return {
@@ -24,7 +24,7 @@ const buildApolloServer = (
24
24
  },
25
25
  };
26
26
  },
27
- },
27
+ }
28
28
  ],
29
29
  introspection: enableIntrospection,
30
30
  ...configOverride,
@@ -1,5 +1,5 @@
1
1
  import { RegisterClass } from '@memberjunction/global';
2
- import { Metadata, RunView, LogError } from '@memberjunction/core';
2
+ import { Metadata, RunView, LogError, EntitySaveOptions } from '@memberjunction/core';
3
3
  import { NewUserBase } from './newUsers.js';
4
4
  import { UserCache } from '@memberjunction/sqlserver-dataprovider';
5
5
  import { configInfo } from '../config.js';
@@ -13,9 +13,10 @@ import { configInfo } from '../config.js';
13
13
  // so that your class is actually used.
14
14
  //@RegisterClass(NewUserBase, undefined, 1) /*by putting 1 into the priority setting, MJGlobal ClassFactory will use this instead of the base class as that registration had no priority*/
15
15
  export class ExampleNewUserSubClass extends NewUserBase {
16
- public override async createNewUser(firstName: string, lastName: string, email: string) {
16
+ public override async createNewUser(firstName: string, lastName: string, email: string, linkedRecordType: string = 'None', linkedEntityId?: string, linkedEntityRecordId?: string) {
17
17
  try {
18
18
  const md = new Metadata();
19
+
19
20
  const contextUser = UserCache.Instance.Users.find(
20
21
  (u) => u.Email.trim().toLowerCase() === configInfo?.userHandling?.contextUserForNewUserCreation?.trim().toLowerCase()
21
22
  );
@@ -1,4 +1,4 @@
1
- import { ApplicationInfo, LogError, LogStatus, Metadata, RunView, RunViewResult, UserInfo } from "@memberjunction/core";
1
+ import { ApplicationInfo, EntitySaveOptions, LogError, LogStatus, Metadata, RunView, RunViewResult, UserInfo } from "@memberjunction/core";
2
2
  import { RegisterClass } from "@memberjunction/global";
3
3
  import { UserCache } from "@memberjunction/sqlserver-dataprovider";
4
4
  import { configInfo } from "../config.js";
package/src/context.ts CHANGED
@@ -7,10 +7,14 @@ import { AuthenticationError, AuthorizationError } from 'type-graphql';
7
7
  import sql from 'mssql';
8
8
  import { getSigningKeys, getSystemUser, validationOptions, verifyUserRecord } from './auth/index.js';
9
9
  import { authCache } from './cache.js';
10
- import { userEmailMap, apiKey } from './config.js';
10
+ import { userEmailMap, apiKey, mj_core_schema } from './config.js';
11
11
  import { DataSourceInfo, UserPayload } from './types.js';
12
12
  import { TokenExpiredError } from './auth/index.js';
13
13
  import { GetReadOnlyDataSource, GetReadWriteDataSource } from './util.js';
14
+ import { v4 as uuidv4 } from 'uuid';
15
+ import e from 'express';
16
+ import { DatabaseProviderBase } from '@memberjunction/core';
17
+ import { SQLServerDataProvider, SQLServerProviderConfigData } from '@memberjunction/sqlserver-dataprovider';
14
18
 
15
19
  const verifyAsync = async (issuer: string, options: jwt.VerifyOptions, token: string): Promise<jwt.JwtPayload> =>
16
20
  new Promise((resolve, reject) => {
@@ -32,7 +36,7 @@ export const getUserPayload = async (
32
36
  sessionId = 'default',
33
37
  dataSources: DataSourceInfo[],
34
38
  requestDomain?: string,
35
- requestApiKey?: string
39
+ requestApiKey?: string
36
40
  ): Promise<UserPayload> => {
37
41
  try {
38
42
  const readOnlyDataSource = GetReadOnlyDataSource(dataSources, { allowFallbackToReadWrite: true });
@@ -109,26 +113,62 @@ export const contextFunction =
109
113
  async ({ req }: { req: IncomingMessage }) => {
110
114
  await firstValueFrom(setupComplete$); // wait for setup to complete before processing the request
111
115
 
116
+ // Extract request data first (synchronous operations)
112
117
  const sessionIdRaw = req.headers['x-session-id'];
113
118
  const requestDomain = url.parse(req.headers.origin || '');
114
119
  const sessionId = sessionIdRaw ? sessionIdRaw.toString() : '';
115
120
  const bearerToken = req.headers.authorization ?? '';
116
-
117
121
  const apiKey = String(req.headers['x-mj-api-key']);
122
+
123
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
124
+ const operationName: string | undefined = (req as any).body?.operationName;
125
+ if (operationName !== 'IntrospectionQuery') {
126
+ console.log({ operationName });
127
+ }
118
128
 
119
129
  const userPayload = await getUserPayload(
120
130
  bearerToken,
121
131
  sessionId,
122
132
  dataSources,
123
133
  requestDomain?.hostname ? requestDomain.hostname : undefined,
124
- apiKey
134
+ apiKey
125
135
  );
126
136
 
127
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
128
- const operationName: string | undefined = (req as any).body?.operationName;
129
- if (operationName !== 'IntrospectionQuery') {
130
- console.log({ operationName });
137
+ // now create a new instance of SQLServerDataProvider for each request
138
+ const config = new SQLServerProviderConfigData(dataSource, mj_core_schema, 0, undefined, undefined, false);
139
+ const p = new SQLServerDataProvider();
140
+ await p.Config(config);
141
+
142
+ let rp = null;
143
+ try {
144
+ const readOnlyDataSource = GetReadOnlyDataSource(dataSources, { allowFallbackToReadWrite: false });
145
+ if (readOnlyDataSource) {
146
+ rp = new SQLServerDataProvider();
147
+ const rConfig = new SQLServerProviderConfigData(readOnlyDataSource, mj_core_schema, 0, undefined, undefined, false);
148
+ await rp.Config(rConfig);
149
+ }
150
+ }
151
+ catch (e) {
152
+ // no read only data source available, so rp will remain null, this is OK!
153
+ }
154
+
155
+ const providers = [{
156
+ provider: p,
157
+ type: 'Read-Write' as 'Read-Write' | 'Read-Only'
158
+ }];
159
+ if (rp) {
160
+ providers.push({
161
+ provider: rp,
162
+ type: 'Read-Only' as 'Read-Write' | 'Read-Only'
163
+ });
131
164
  }
132
165
 
133
- return { dataSource, dataSources, userPayload };
166
+ const contextResult = {
167
+ dataSource,
168
+ dataSources,
169
+ userPayload: userPayload,
170
+ providers,
171
+ };
172
+
173
+ return contextResult;
134
174
  };
@@ -1,5 +1,5 @@
1
1
  import { RegisterClass } from '@memberjunction/global';
2
- import { BaseEntity, EntitySaveOptions } from '@memberjunction/core';
2
+ import { BaseEntity, EntityDeleteOptions, EntitySaveOptions } from '@memberjunction/core';
3
3
  import { EntityPermissionEntity } from '@memberjunction/core-entities';
4
4
  import axios from 'axios';
5
5
  import { ___codeGenAPIPort, ___codeGenAPISubmissionDelay, ___codeGenAPIURL } from '../config.js';
@@ -94,8 +94,8 @@ export class EntityPermissionsEntity_Server extends EntityPermissionEntity {
94
94
  return super.Save(options);
95
95
  }
96
96
 
97
- override async Delete(): Promise<boolean> {
98
- const success = await super.Delete();
97
+ override async Delete(options: EntityDeleteOptions): Promise<boolean> {
98
+ const success = await super.Delete(options);
99
99
 
100
100
  // simply queue up the entity ID if the delete worked
101
101
  if (success) EntityPermissionsEntity_Server.AddToQueue(this.EntityID);