@qrunio/qqq-frontend-core 1.0.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 (141) hide show
  1. package/LICENSE +619 -0
  2. package/README.md +35 -0
  3. package/lib/controllers/QController.d.ts +217 -0
  4. package/lib/controllers/QController.js +1026 -0
  5. package/lib/controllers/QController.js.map +1 -0
  6. package/lib/controllers/QControllerV1.d.ts +213 -0
  7. package/lib/controllers/QControllerV1.js +992 -0
  8. package/lib/controllers/QControllerV1.js.map +1 -0
  9. package/lib/exceptions/QException.d.ts +12 -0
  10. package/lib/exceptions/QException.js +54 -0
  11. package/lib/exceptions/QException.js.map +1 -0
  12. package/lib/model/QPossibleValue.d.ts +9 -0
  13. package/lib/model/QPossibleValue.js +33 -0
  14. package/lib/model/QPossibleValue.js.map +1 -0
  15. package/lib/model/QRecord.d.ts +14 -0
  16. package/lib/model/QRecord.js +64 -0
  17. package/lib/model/QRecord.js.map +1 -0
  18. package/lib/model/metaData/AdornmentType.d.ts +16 -0
  19. package/lib/model/metaData/AdornmentType.js +41 -0
  20. package/lib/model/metaData/AdornmentType.js.map +1 -0
  21. package/lib/model/metaData/Banner.d.ts +15 -0
  22. package/lib/model/metaData/Banner.js +37 -0
  23. package/lib/model/metaData/Banner.js.map +1 -0
  24. package/lib/model/metaData/Capability.d.ts +12 -0
  25. package/lib/model/metaData/Capability.js +37 -0
  26. package/lib/model/metaData/Capability.js.map +1 -0
  27. package/lib/model/metaData/FieldAdornment.d.ts +11 -0
  28. package/lib/model/metaData/FieldAdornment.js +44 -0
  29. package/lib/model/metaData/FieldAdornment.js.map +1 -0
  30. package/lib/model/metaData/ProcessMetaDataAdjustment.d.ts +11 -0
  31. package/lib/model/metaData/ProcessMetaDataAdjustment.js +45 -0
  32. package/lib/model/metaData/ProcessMetaDataAdjustment.js.map +1 -0
  33. package/lib/model/metaData/QAppMetaData.d.ts +17 -0
  34. package/lib/model/metaData/QAppMetaData.js +57 -0
  35. package/lib/model/metaData/QAppMetaData.js.map +1 -0
  36. package/lib/model/metaData/QAppNodeType.d.ts +10 -0
  37. package/lib/model/metaData/QAppNodeType.js +32 -0
  38. package/lib/model/metaData/QAppNodeType.js.map +1 -0
  39. package/lib/model/metaData/QAppSection.d.ts +14 -0
  40. package/lib/model/metaData/QAppSection.js +46 -0
  41. package/lib/model/metaData/QAppSection.js.map +1 -0
  42. package/lib/model/metaData/QAppTreeNode.d.ts +16 -0
  43. package/lib/model/metaData/QAppTreeNode.js +46 -0
  44. package/lib/model/metaData/QAppTreeNode.js.map +1 -0
  45. package/lib/model/metaData/QAuthenticationMetaData.d.ts +10 -0
  46. package/lib/model/metaData/QAuthenticationMetaData.js +44 -0
  47. package/lib/model/metaData/QAuthenticationMetaData.js.map +1 -0
  48. package/lib/model/metaData/QBrandingMetaData.d.ts +17 -0
  49. package/lib/model/metaData/QBrandingMetaData.js +46 -0
  50. package/lib/model/metaData/QBrandingMetaData.js.map +1 -0
  51. package/lib/model/metaData/QComponentType.d.ts +20 -0
  52. package/lib/model/metaData/QComponentType.js +45 -0
  53. package/lib/model/metaData/QComponentType.js.map +1 -0
  54. package/lib/model/metaData/QExposedJoin.d.ts +14 -0
  55. package/lib/model/metaData/QExposedJoin.js +41 -0
  56. package/lib/model/metaData/QExposedJoin.js.map +1 -0
  57. package/lib/model/metaData/QFieldMetaData.d.ts +42 -0
  58. package/lib/model/metaData/QFieldMetaData.js +98 -0
  59. package/lib/model/metaData/QFieldMetaData.js.map +1 -0
  60. package/lib/model/metaData/QFieldType.d.ts +18 -0
  61. package/lib/model/metaData/QFieldType.js +43 -0
  62. package/lib/model/metaData/QFieldType.js.map +1 -0
  63. package/lib/model/metaData/QFrontendComponent.d.ts +10 -0
  64. package/lib/model/metaData/QFrontendComponent.js +35 -0
  65. package/lib/model/metaData/QFrontendComponent.js.map +1 -0
  66. package/lib/model/metaData/QFrontendStepMetaData.d.ts +18 -0
  67. package/lib/model/metaData/QFrontendStepMetaData.js +62 -0
  68. package/lib/model/metaData/QFrontendStepMetaData.js.map +1 -0
  69. package/lib/model/metaData/QHelpContent.d.ts +23 -0
  70. package/lib/model/metaData/QHelpContent.js +82 -0
  71. package/lib/model/metaData/QHelpContent.js.map +1 -0
  72. package/lib/model/metaData/QIcon.d.ts +10 -0
  73. package/lib/model/metaData/QIcon.js +34 -0
  74. package/lib/model/metaData/QIcon.js.map +1 -0
  75. package/lib/model/metaData/QInstance.d.ts +41 -0
  76. package/lib/model/metaData/QInstance.js +145 -0
  77. package/lib/model/metaData/QInstance.js.map +1 -0
  78. package/lib/model/metaData/QJoinMetaData.d.ts +11 -0
  79. package/lib/model/metaData/QJoinMetaData.js +35 -0
  80. package/lib/model/metaData/QJoinMetaData.js.map +1 -0
  81. package/lib/model/metaData/QProcessMetaData.d.ts +18 -0
  82. package/lib/model/metaData/QProcessMetaData.js +52 -0
  83. package/lib/model/metaData/QProcessMetaData.js.map +1 -0
  84. package/lib/model/metaData/QReportMetaData.d.ts +13 -0
  85. package/lib/model/metaData/QReportMetaData.js +38 -0
  86. package/lib/model/metaData/QReportMetaData.js.map +1 -0
  87. package/lib/model/metaData/QTableMetaData.d.ts +29 -0
  88. package/lib/model/metaData/QTableMetaData.js +85 -0
  89. package/lib/model/metaData/QTableMetaData.js.map +1 -0
  90. package/lib/model/metaData/QTableSection.d.ts +20 -0
  91. package/lib/model/metaData/QTableSection.js +46 -0
  92. package/lib/model/metaData/QTableSection.js.map +1 -0
  93. package/lib/model/metaData/QTableVariant.d.ts +10 -0
  94. package/lib/model/metaData/QTableVariant.js +34 -0
  95. package/lib/model/metaData/QTableVariant.js.map +1 -0
  96. package/lib/model/metaData/QWidgetMetaData.d.ts +32 -0
  97. package/lib/model/metaData/QWidgetMetaData.js +63 -0
  98. package/lib/model/metaData/QWidgetMetaData.js.map +1 -0
  99. package/lib/model/processes/QJobComplete.d.ts +15 -0
  100. package/lib/model/processes/QJobComplete.js +39 -0
  101. package/lib/model/processes/QJobComplete.js.map +1 -0
  102. package/lib/model/processes/QJobError.d.ts +10 -0
  103. package/lib/model/processes/QJobError.js +34 -0
  104. package/lib/model/processes/QJobError.js.map +1 -0
  105. package/lib/model/processes/QJobRunning.d.ts +11 -0
  106. package/lib/model/processes/QJobRunning.js +35 -0
  107. package/lib/model/processes/QJobRunning.js.map +1 -0
  108. package/lib/model/processes/QJobStarted.d.ts +9 -0
  109. package/lib/model/processes/QJobStarted.js +33 -0
  110. package/lib/model/processes/QJobStarted.js.map +1 -0
  111. package/lib/model/query/FilterVariableExpression.d.ts +11 -0
  112. package/lib/model/query/FilterVariableExpression.js +37 -0
  113. package/lib/model/query/FilterVariableExpression.js.map +1 -0
  114. package/lib/model/query/NowExpression.d.ts +9 -0
  115. package/lib/model/query/NowExpression.js +35 -0
  116. package/lib/model/query/NowExpression.js.map +1 -0
  117. package/lib/model/query/NowWithOffsetExpression.d.ts +14 -0
  118. package/lib/model/query/NowWithOffsetExpression.js +43 -0
  119. package/lib/model/query/NowWithOffsetExpression.js.map +1 -0
  120. package/lib/model/query/QCriteriaOperator.d.ts +25 -0
  121. package/lib/model/query/QCriteriaOperator.js +47 -0
  122. package/lib/model/query/QCriteriaOperator.js.map +1 -0
  123. package/lib/model/query/QFilterCriteria.d.ts +12 -0
  124. package/lib/model/query/QFilterCriteria.js +34 -0
  125. package/lib/model/query/QFilterCriteria.js.map +1 -0
  126. package/lib/model/query/QFilterOrderBy.d.ts +9 -0
  127. package/lib/model/query/QFilterOrderBy.js +33 -0
  128. package/lib/model/query/QFilterOrderBy.js.map +1 -0
  129. package/lib/model/query/QQueryFilter.d.ts +26 -0
  130. package/lib/model/query/QQueryFilter.js +86 -0
  131. package/lib/model/query/QQueryFilter.js.map +1 -0
  132. package/lib/model/query/QueryJoin.d.ts +13 -0
  133. package/lib/model/query/QueryJoin.js +42 -0
  134. package/lib/model/query/QueryJoin.js.map +1 -0
  135. package/lib/model/query/ThisOrLastPeriodExpression.d.ts +13 -0
  136. package/lib/model/query/ThisOrLastPeriodExpression.js +43 -0
  137. package/lib/model/query/ThisOrLastPeriodExpression.js.map +1 -0
  138. package/lib/qqq-frontend-core.d.ts +1 -0
  139. package/lib/qqq-frontend-core.js +31 -0
  140. package/lib/qqq-frontend-core.js.map +1 -0
  141. package/package.json +51 -0
@@ -0,0 +1,217 @@
1
+ import { AxiosResponse } from "axios";
2
+ import FormData from "form-data";
3
+ import { QException } from "../exceptions/QException";
4
+ import { QAuthenticationMetaData } from "../model/metaData/QAuthenticationMetaData";
5
+ import { QInstance } from "../model/metaData/QInstance";
6
+ import { QProcessMetaData } from "../model/metaData/QProcessMetaData";
7
+ import { QTableMetaData } from "../model/metaData/QTableMetaData";
8
+ import { QTableVariant } from "../model/metaData/QTableVariant";
9
+ import { QJobComplete } from "../model/processes/QJobComplete";
10
+ import { QJobError } from "../model/processes/QJobError";
11
+ import { QJobRunning } from "../model/processes/QJobRunning";
12
+ import { QJobStarted } from "../model/processes/QJobStarted";
13
+ import { QPossibleValue } from "../model/QPossibleValue";
14
+ import { QRecord } from "../model/QRecord";
15
+ import { QQueryFilter } from "../model/query/QQueryFilter";
16
+ import { QueryJoin } from "../model/query/QueryJoin";
17
+ export type PossibleValueParams = {
18
+ tableName?: string | null;
19
+ processName?: string | null;
20
+ fieldNameOrPossibleValueSourceName: string;
21
+ searchTerm?: string | null;
22
+ ids?: any[] | null;
23
+ labels?: any[] | null;
24
+ values?: Map<string, any> | null;
25
+ useCase?: string | null;
26
+ possibleValueSourceFilter?: QQueryFilter | null;
27
+ };
28
+ /*******************************************************************************
29
+ ** Controller for interacting with a QQQ backend.
30
+ *******************************************************************************/
31
+ export declare class QController {
32
+ private axiosInstance;
33
+ private exceptionHandler;
34
+ static STEP_TIMEOUT_MILLIS_PARAM_NAME: string;
35
+ private static metaDataPromise?;
36
+ private static tableMetaDataPromises;
37
+ private static processMetaDataPromises;
38
+ private static authenticationMetaDataLocalStorageKey;
39
+ private static awaitAuthenticationPromise;
40
+ private static gotAuthentication;
41
+ private static widgetAbortControllerMap;
42
+ /*******************************************************************************
43
+ **
44
+ *******************************************************************************/
45
+ constructor(baseUrl: string, exceptionHandler?: (error: QException) => any);
46
+ /*******************************************************************************
47
+ ** Useful for development (e.g., to be able to use the axios instance, to test
48
+ ** things we probably want to keep in this class, without having to re-install
49
+ ** this module for the testing cycle), but probably not meant for main-line usage.
50
+ *******************************************************************************/
51
+ getAxiosInstance(): any;
52
+ /*******************************************************************************
53
+ ** clear memoized promises
54
+ *******************************************************************************/
55
+ static clearMemoization(): void;
56
+ /*******************************************************************************
57
+ ** Function to be called by an app after it's authenticated the user. This will
58
+ ** allow the awaitAuthenticationPromise to resolve, so that other requests can continue.
59
+ *******************************************************************************/
60
+ setGotAuthentication(): void;
61
+ /*******************************************************************************
62
+ ** Clear the authentication meta data from local storage
63
+ *******************************************************************************/
64
+ clearAuthenticationMetaDataLocalStorage(): void;
65
+ /*******************************************************************************
66
+ ** Fetch the authentication meta data from local storage or the server.
67
+ *******************************************************************************/
68
+ getAuthenticationMetaData(): Promise<QAuthenticationMetaData>;
69
+ /*******************************************************************************
70
+ ** create or update a user session
71
+ *******************************************************************************/
72
+ manageSession(accessToken: string, uuid?: string, more?: {
73
+ [name: string]: any;
74
+ }): Promise<{
75
+ uuid: string;
76
+ values: {
77
+ [key: string]: any;
78
+ };
79
+ }>;
80
+ /*******************************************************************************
81
+ ** Fetch the top-level meta data for a qqq instance.
82
+ *******************************************************************************/
83
+ loadMetaData(): Promise<QInstance>;
84
+ /*******************************************************************************
85
+ ** Fetch the full meta data for a specific table.
86
+ *******************************************************************************/
87
+ loadTableMetaData(tableName: string): Promise<QTableMetaData>;
88
+ /*******************************************************************************
89
+ ** Fetch the full meta data for a specific process.
90
+ *******************************************************************************/
91
+ loadProcessMetaData(processName: string): Promise<QProcessMetaData>;
92
+ /*******************************************************************************
93
+ ** Make a count request to the backend
94
+ *******************************************************************************/
95
+ count(tableName: string, queryFilter?: QQueryFilter, queryJoins?: QueryJoin[] | null, includeDistinct?: boolean, tableVariant?: QTableVariant | null): Promise<[number, number]>;
96
+ /*******************************************************************************
97
+ ** Make a query request to the backend
98
+ *******************************************************************************/
99
+ query(tableName: string, queryFilter?: QQueryFilter, queryJoins?: QueryJoin[] | null, tableVariant?: QTableVariant | null): Promise<QRecord[]>;
100
+ /*******************************************************************************
101
+ ** Make a request to the backend for a single record
102
+ *******************************************************************************/
103
+ get(tableName: string, primaryKey: any, tableVariant?: QTableVariant | null, includeAssociations?: boolean, queryJoins?: QueryJoin[] | null): Promise<QRecord>;
104
+ /*******************************************************************************
105
+ ** Make a request to the backend for a single record's developer mode data
106
+ *******************************************************************************/
107
+ getRecordDeveloperMode(tableName: string, primaryKey: any): Promise<any>;
108
+ /*******************************************************************************
109
+ ** Make a request to the backend to save a new version of a record's associated script
110
+ *******************************************************************************/
111
+ storeRecordAssociatedScript(tableName: string, primaryKey: any, fieldName: string, code: string, commitMessage: string): Promise<any>;
112
+ /*******************************************************************************
113
+ ** Make a request to the backend to get script logs for an associated script
114
+ *******************************************************************************/
115
+ getRecordAssociatedScriptLogs(tableName: string, primaryKey: any, fieldName: string, scriptRevisionId: number): Promise<any>;
116
+ /*******************************************************************************
117
+ ** Make a request to the backend to test a script
118
+ *******************************************************************************/
119
+ testScript(tableName: string, primaryKey: any, fieldName: string, code: string, inputValues: Map<string, any>): Promise<any>;
120
+ /*******************************************************************************
121
+ ** Make a backend call to create a single record
122
+ **
123
+ *******************************************************************************/
124
+ create(tableName: string, data: {
125
+ [key: string]: any;
126
+ }): Promise<QRecord>;
127
+ /*******************************************************************************
128
+ ** Convert a javascript object of form data to a "FormData" object for multipart posting.
129
+ *******************************************************************************/
130
+ private dataObjectToFormData;
131
+ /*******************************************************************************
132
+ ** Make a backend call to update a single record
133
+ **
134
+ *******************************************************************************/
135
+ update(tableName: string, id: any, data: {
136
+ [key: string]: any;
137
+ }): Promise<QRecord>;
138
+ /*******************************************************************************
139
+ ** Make a backend call to delete a single record
140
+ **
141
+ *******************************************************************************/
142
+ delete(tableName: string, id: any): Promise<number>;
143
+ /*******************************************************************************
144
+ ** Common logic to parse a process-related server response into an appropriate object.
145
+ *******************************************************************************/
146
+ parseProcessResponse(response: AxiosResponse): QJobStarted | QJobRunning | QJobComplete | QJobError;
147
+ /*******************************************************************************
148
+ ** Initialize a process
149
+ *******************************************************************************/
150
+ processInit(processName: string, formDataOrQueryString?: string | FormData, formDataHeaders?: FormData.Headers): Promise<QJobStarted | QJobComplete | QJobError>;
151
+ /*******************************************************************************
152
+ ** Fully run a process (i.e., not stopping for frontend steps)
153
+ *******************************************************************************/
154
+ processRun(processName: string, formDataOrQueryString?: string | FormData, formDataHeaders?: FormData.Headers, dontGoAsyncOnBackend?: boolean): Promise<QJobStarted | QJobComplete | QJobError>;
155
+ /*******************************************************************************
156
+ ** Helper function for the process init & step functions, as well as bulk functions
157
+ ** which may run async.
158
+ *******************************************************************************/
159
+ private postWithQueryStringToPossibleAsyncBackendJob;
160
+ /*******************************************************************************
161
+ ** Proceed to the next step in a process
162
+ *******************************************************************************/
163
+ processStep(processName: string, processUUID: string, step: string, formDataOrQueryString?: string | FormData, formDataHeaders?: FormData.Headers): Promise<QJobStarted | QJobComplete | QJobError>;
164
+ /*******************************************************************************
165
+ ** Proceed to the next step in a process
166
+ *******************************************************************************/
167
+ processStepOrInit(url: string, formDataOrQueryString?: string | FormData, formDataHeaders?: FormData.Headers, dontGoAsyncOnBackend?: boolean): Promise<QJobStarted | QJobComplete | QJobError>;
168
+ /*******************************************************************************
169
+ ** Get the status for a currently executing job within a process (init or step)
170
+ *******************************************************************************/
171
+ processJobStatus(processName: string, processUUID: string, jobUUID: string): Promise<QJobRunning | QJobComplete | QJobError>;
172
+ /*******************************************************************************
173
+ ** Get records from a process's state
174
+ *******************************************************************************/
175
+ processRecords(processName: string, processUUID: string, skip?: number, limit?: number): Promise<{
176
+ totalRecords: number;
177
+ records: QRecord[];
178
+ }>;
179
+ /*******************************************************************************
180
+ ** Handle a user clicking cancel on a process
181
+ *******************************************************************************/
182
+ processCancel(processName: string, processUUID: string): Promise<boolean>;
183
+ /*******************************************************************************
184
+ ** Fetch the data for a specific widget.
185
+ *******************************************************************************/
186
+ tableVariants(tableName: string): Promise<QTableVariant[]>;
187
+ /*******************************************************************************
188
+ ** Fetch the data for a specific widget.
189
+ *******************************************************************************/
190
+ widget(widgetName: string, urlParams?: string): Promise<any>;
191
+ /***************************************************************************
192
+ * overload 1 of possibleValues function - this is its "original" signature
193
+ * that took several params, many optional, and kept evolving and getting
194
+ * messier and messier.
195
+ ***************************************************************************/
196
+ possibleValues(tableName: string | null, processName: string | null, fieldNameOrPossibleValueSourceName: string, searchTerm?: string, ids?: any[], labels?: any[], values?: Map<string, any>, useCase?: string): Promise<QPossibleValue[]>;
197
+ /***************************************************************************
198
+ * overload 2 of possibleValues function - this is a "new" signature
199
+ * that takes an object, to make evolution (addition of new params) easier
200
+ * over time (e.g., backward compatible).
201
+ ***************************************************************************/
202
+ possibleValues(params: PossibleValueParams): Promise<QPossibleValue[]>;
203
+ /***************************************************************************
204
+ ** Let an app piggyback on our axiosInstance and handleException methods
205
+ ** to issue ad-hock requests.
206
+ ***************************************************************************/
207
+ axiosRequest(config: any): Promise<any>;
208
+ /*******************************************************************************
209
+ **
210
+ *******************************************************************************/
211
+ defaultMultipartFormDataHeaders(): FormData.Headers;
212
+ /*******************************************************************************
213
+ ** exception handler which will marshal axios error into a QException and
214
+ * send that the exception handler provided to this class
215
+ *******************************************************************************/
216
+ private handleException;
217
+ }