quickbase-js 2.1.0 → 2.2.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 (112) hide show
  1. package/README.md +700 -90
  2. package/bin/quickbase-js.js +54 -0
  3. package/dist/auth/index.d.ts.map +1 -1
  4. package/dist/auth/index.js +5 -1
  5. package/dist/auth/index.js.map +1 -1
  6. package/dist/auth/ticket.d.ts +13 -0
  7. package/dist/auth/ticket.d.ts.map +1 -1
  8. package/dist/auth/ticket.js +103 -3
  9. package/dist/auth/ticket.js.map +1 -1
  10. package/dist/cli/schema.d.ts +23 -0
  11. package/dist/cli/schema.d.ts.map +1 -0
  12. package/dist/cli/schema.js +425 -0
  13. package/dist/cli/schema.js.map +1 -0
  14. package/dist/client/request.d.ts +2 -1
  15. package/dist/client/request.d.ts.map +1 -1
  16. package/dist/client/request.js +165 -18
  17. package/dist/client/request.js.map +1 -1
  18. package/dist/core/config.d.ts.map +1 -1
  19. package/dist/core/config.js +4 -0
  20. package/dist/core/config.js.map +1 -1
  21. package/dist/core/errors.d.ts +17 -0
  22. package/dist/core/errors.d.ts.map +1 -1
  23. package/dist/core/errors.js +32 -0
  24. package/dist/core/errors.js.map +1 -1
  25. package/dist/core/index.d.ts +2 -2
  26. package/dist/core/index.d.ts.map +1 -1
  27. package/dist/core/index.js +1 -1
  28. package/dist/core/index.js.map +1 -1
  29. package/dist/core/schema.d.ts +37 -0
  30. package/dist/core/schema.d.ts.map +1 -0
  31. package/dist/core/schema.js +168 -0
  32. package/dist/core/schema.js.map +1 -0
  33. package/dist/core/transform.d.ts +36 -0
  34. package/dist/core/transform.d.ts.map +1 -0
  35. package/dist/core/transform.js +205 -0
  36. package/dist/core/transform.js.map +1 -0
  37. package/dist/core/types.d.ts +108 -0
  38. package/dist/core/types.d.ts.map +1 -1
  39. package/dist/core/types.js.map +1 -1
  40. package/dist/index.d.ts +11 -2
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +7 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/quickbase.esm.js +3 -3
  45. package/dist/quickbase.esm.js.map +4 -4
  46. package/dist/quickbase.min.js +3 -3
  47. package/dist/quickbase.min.js.map +4 -4
  48. package/dist/xml/codepages.d.ts +60 -0
  49. package/dist/xml/codepages.d.ts.map +1 -0
  50. package/dist/xml/codepages.js +88 -0
  51. package/dist/xml/codepages.js.map +1 -0
  52. package/dist/xml/dbvars.d.ts +39 -0
  53. package/dist/xml/dbvars.d.ts.map +1 -0
  54. package/dist/xml/dbvars.js +54 -0
  55. package/dist/xml/dbvars.js.map +1 -0
  56. package/dist/xml/errors.d.ts +64 -0
  57. package/dist/xml/errors.d.ts.map +1 -0
  58. package/dist/xml/errors.js +102 -0
  59. package/dist/xml/errors.js.map +1 -0
  60. package/dist/xml/fields.d.ts +45 -0
  61. package/dist/xml/fields.d.ts.map +1 -0
  62. package/dist/xml/fields.js +86 -0
  63. package/dist/xml/fields.js.map +1 -0
  64. package/dist/xml/groups.d.ts +196 -0
  65. package/dist/xml/groups.d.ts.map +1 -0
  66. package/dist/xml/groups.js +424 -0
  67. package/dist/xml/groups.js.map +1 -0
  68. package/dist/xml/html.d.ts +61 -0
  69. package/dist/xml/html.d.ts.map +1 -0
  70. package/dist/xml/html.js +110 -0
  71. package/dist/xml/html.js.map +1 -0
  72. package/dist/xml/index.d.ts +456 -0
  73. package/dist/xml/index.d.ts.map +1 -0
  74. package/dist/xml/index.js +747 -0
  75. package/dist/xml/index.js.map +1 -0
  76. package/dist/xml/metadata.d.ts +49 -0
  77. package/dist/xml/metadata.d.ts.map +1 -0
  78. package/dist/xml/metadata.js +84 -0
  79. package/dist/xml/metadata.js.map +1 -0
  80. package/dist/xml/records.d.ts +106 -0
  81. package/dist/xml/records.d.ts.map +1 -0
  82. package/dist/xml/records.js +220 -0
  83. package/dist/xml/records.js.map +1 -0
  84. package/dist/xml/request.d.ts +129 -0
  85. package/dist/xml/request.d.ts.map +1 -0
  86. package/dist/xml/request.js +190 -0
  87. package/dist/xml/request.js.map +1 -0
  88. package/dist/xml/roles.d.ts +117 -0
  89. package/dist/xml/roles.d.ts.map +1 -0
  90. package/dist/xml/roles.js +241 -0
  91. package/dist/xml/roles.js.map +1 -0
  92. package/dist/xml/schema.d.ts +94 -0
  93. package/dist/xml/schema.d.ts.map +1 -0
  94. package/dist/xml/schema.js +354 -0
  95. package/dist/xml/schema.js.map +1 -0
  96. package/dist/xml/transform.d.ts +154 -0
  97. package/dist/xml/transform.d.ts.map +1 -0
  98. package/dist/xml/transform.js +182 -0
  99. package/dist/xml/transform.js.map +1 -0
  100. package/dist/xml/types.d.ts +531 -0
  101. package/dist/xml/types.d.ts.map +1 -0
  102. package/dist/xml/types.js +22 -0
  103. package/dist/xml/types.js.map +1 -0
  104. package/dist/xml/users.d.ts +92 -0
  105. package/dist/xml/users.d.ts.map +1 -0
  106. package/dist/xml/users.js +166 -0
  107. package/dist/xml/users.js.map +1 -0
  108. package/dist/xml/webhooks.d.ts +98 -0
  109. package/dist/xml/webhooks.d.ts.map +1 -0
  110. package/dist/xml/webhooks.js +202 -0
  111. package/dist/xml/webhooks.js.map +1 -0
  112. package/package.json +6 -2
@@ -0,0 +1,354 @@
1
+ /**
2
+ * XML API Schema and App Discovery
3
+ *
4
+ * Endpoints for discovering apps/tables and getting schema information.
5
+ *
6
+ * XML-API: Remove this file when QuickBase discontinues the XML API.
7
+ * To find all XML API code, search for: XML-API
8
+ */
9
+ import { checkError } from './errors.js';
10
+ import { buildRequest, escapeXml, parseBaseResponse, getTagContent, getAttribute, getAllElements, parseXmlNumber, parseXmlBool, } from './request.js';
11
+ /**
12
+ * List all apps/tables the user can access.
13
+ *
14
+ * Returns apps across all domains by default. Use realmAppsOnly to limit
15
+ * to the current realm.
16
+ *
17
+ * @see https://help.quickbase.com/docs/api-granteddbs
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const result = await grantedDBs(caller, { parentsOnly: true });
22
+ * for (const db of result.databases) {
23
+ * console.log(`${db.name} (${db.dbid})`);
24
+ * }
25
+ * ```
26
+ */
27
+ export async function grantedDBs(caller, options) {
28
+ let inner = '';
29
+ if (options?.excludeParents) {
30
+ inner += '<excludeparents>1</excludeparents>';
31
+ }
32
+ if (options?.parentsOnly) {
33
+ inner += '<Withembeddedtables>0</Withembeddedtables>';
34
+ }
35
+ if (options?.adminOnly) {
36
+ inner += '<adminOnly>true</adminOnly>';
37
+ }
38
+ if (options?.includeAncestors) {
39
+ inner += '<includeancestors>1</includeancestors>';
40
+ }
41
+ if (options?.withEmbeddedTables !== undefined) {
42
+ inner += `<withembeddedtables>${options.withEmbeddedTables ? '1' : '0'}</withembeddedtables>`;
43
+ }
44
+ if (options?.realmAppsOnly) {
45
+ inner += '<realmAppsOnly>true</realmAppsOnly>';
46
+ }
47
+ const body = buildRequest(inner);
48
+ const xml = await caller.doXml('main', 'API_GrantedDBs', body);
49
+ const base = parseBaseResponse(xml);
50
+ checkError(base);
51
+ // Parse databases
52
+ const dbElements = getAllElements(xml, 'dbinfo');
53
+ const databases = dbElements.map((dbXml) => {
54
+ const info = {
55
+ dbid: getTagContent(dbXml, 'dbid'),
56
+ name: getTagContent(dbXml, 'dbname'),
57
+ };
58
+ const ancestorAppId = getTagContent(dbXml, 'ancestorappid');
59
+ if (ancestorAppId) {
60
+ info.ancestorAppId = ancestorAppId;
61
+ }
62
+ const oldestAncestorAppId = getTagContent(dbXml, 'oldestancestorappid');
63
+ if (oldestAncestorAppId) {
64
+ info.oldestAncestorAppId = oldestAncestorAppId;
65
+ }
66
+ return info;
67
+ });
68
+ return { databases };
69
+ }
70
+ /**
71
+ * Find an app by name.
72
+ *
73
+ * Searches only apps you have access to. May return multiple results
74
+ * if multiple apps share the same name.
75
+ *
76
+ * @see https://help.quickbase.com/docs/api-finddbbyname
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * const result = await findDBByName(caller, 'My App', true);
81
+ * console.log(`Found app: ${result.dbid}`);
82
+ * ```
83
+ */
84
+ export async function findDBByName(caller, name, parentsOnly) {
85
+ let inner = `<dbname>${escapeXml(name)}</dbname>`;
86
+ if (parentsOnly) {
87
+ inner += '<ParentsOnly>1</ParentsOnly>';
88
+ }
89
+ const body = buildRequest(inner);
90
+ const xml = await caller.doXml('main', 'API_FindDBByName', body);
91
+ const base = parseBaseResponse(xml);
92
+ checkError(base);
93
+ const dbid = getTagContent(xml, 'dbid');
94
+ if (!dbid) {
95
+ throw new Error('Invalid API_FindDBByName response: no dbid element');
96
+ }
97
+ return { dbid };
98
+ }
99
+ /**
100
+ * Get app/table metadata.
101
+ *
102
+ * Returns information like last modified time, record count, manager info.
103
+ *
104
+ * @see https://help.quickbase.com/docs/api-getdbinfo
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * const info = await getDBInfo(caller, 'bqxyz123');
109
+ * console.log(`${info.name}: ${info.numRecords} records`);
110
+ * console.log(`Manager: ${info.managerName}`);
111
+ * ```
112
+ */
113
+ export async function getDBInfo(caller, dbid) {
114
+ const body = buildRequest('');
115
+ const xml = await caller.doXml(dbid, 'API_GetDBInfo', body);
116
+ const base = parseBaseResponse(xml);
117
+ checkError(base);
118
+ return {
119
+ name: getTagContent(xml, 'dbname'),
120
+ lastRecModTime: getTagContent(xml, 'lastRecModTime') || undefined,
121
+ lastModifiedTime: getTagContent(xml, 'lastModifiedTime') || undefined,
122
+ createdTime: getTagContent(xml, 'createdTime') || undefined,
123
+ numRecords: parseXmlNumber(getTagContent(xml, 'numRecords')),
124
+ managerId: getTagContent(xml, 'mgrID') || undefined,
125
+ managerName: getTagContent(xml, 'mgrName') || undefined,
126
+ version: getTagContent(xml, 'version') || undefined,
127
+ timeZone: getTagContent(xml, 'time_zone') || undefined,
128
+ };
129
+ }
130
+ /**
131
+ * Get total record count for a table.
132
+ *
133
+ * @see https://help.quickbase.com/docs/api-getnumrecords
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * const count = await getNumRecords(caller, 'bqtable123');
138
+ * console.log(`Table has ${count} records`);
139
+ * ```
140
+ */
141
+ export async function getNumRecords(caller, tableId) {
142
+ const body = buildRequest('');
143
+ const xml = await caller.doXml(tableId, 'API_GetNumRecords', body);
144
+ const base = parseBaseResponse(xml);
145
+ checkError(base);
146
+ return parseXmlNumber(getTagContent(xml, 'num_records'));
147
+ }
148
+ /**
149
+ * Parse a field element from GetSchema response
150
+ */
151
+ function parseSchemaField(fieldXml) {
152
+ const field = {
153
+ id: parseXmlNumber(getAttribute(fieldXml, 'id')),
154
+ fieldType: getAttribute(fieldXml, 'field_type'),
155
+ baseType: getAttribute(fieldXml, 'base_type'),
156
+ label: getTagContent(fieldXml, 'label'),
157
+ };
158
+ const mode = getAttribute(fieldXml, 'mode');
159
+ if (mode)
160
+ field.mode = mode;
161
+ const nowrap = getTagContent(fieldXml, 'nowrap');
162
+ if (nowrap)
163
+ field.nowrap = parseXmlBool(nowrap);
164
+ const bold = getTagContent(fieldXml, 'bold');
165
+ if (bold)
166
+ field.bold = parseXmlBool(bold);
167
+ const required = getTagContent(fieldXml, 'required');
168
+ if (required)
169
+ field.required = parseXmlBool(required);
170
+ const unique = getTagContent(fieldXml, 'unique');
171
+ if (unique)
172
+ field.unique = parseXmlBool(unique);
173
+ const fieldHelp = getTagContent(fieldXml, 'fieldhelp');
174
+ if (fieldHelp)
175
+ field.fieldHelp = fieldHelp;
176
+ const appearsByDefault = getTagContent(fieldXml, 'appears_by_default');
177
+ if (appearsByDefault)
178
+ field.appearsByDefault = parseXmlBool(appearsByDefault);
179
+ const findEnabled = getTagContent(fieldXml, 'find_enabled');
180
+ if (findEnabled)
181
+ field.findEnabled = parseXmlBool(findEnabled);
182
+ const allowNewChoices = getTagContent(fieldXml, 'allow_new_choices');
183
+ if (allowNewChoices)
184
+ field.allowNewChoices = parseXmlBool(allowNewChoices);
185
+ const sortAsGiven = getTagContent(fieldXml, 'sort_as_given');
186
+ if (sortAsGiven)
187
+ field.sortAsGiven = parseXmlBool(sortAsGiven);
188
+ const carryChoices = getTagContent(fieldXml, 'carrychoices');
189
+ if (carryChoices)
190
+ field.carryChoices = parseXmlBool(carryChoices);
191
+ const foreignKey = getTagContent(fieldXml, 'foreignkey');
192
+ if (foreignKey)
193
+ field.foreignKey = parseXmlBool(foreignKey);
194
+ const doesTotal = getTagContent(fieldXml, 'does_total');
195
+ if (doesTotal)
196
+ field.doesTotal = parseXmlBool(doesTotal);
197
+ const doesAverage = getTagContent(fieldXml, 'does_average');
198
+ if (doesAverage)
199
+ field.doesAverage = parseXmlBool(doesAverage);
200
+ const defaultKind = getTagContent(fieldXml, 'default_kind');
201
+ if (defaultKind)
202
+ field.defaultKind = defaultKind;
203
+ const defaultValue = getTagContent(fieldXml, 'default_value');
204
+ if (defaultValue)
205
+ field.defaultValue = defaultValue;
206
+ // Parse choices if present
207
+ const choicesMatch = fieldXml.match(/<choices>([\s\S]*?)<\/choices>/);
208
+ if (choicesMatch && choicesMatch[1]) {
209
+ const choiceElements = getAllElements(choicesMatch[1], 'choice');
210
+ field.choices = choiceElements.map((c) => getTagContent(c, 'choice') || c.replace(/<\/?choice>/g, ''));
211
+ }
212
+ // Parse summary fields
213
+ const summaryReferenceFid = getTagContent(fieldXml, 'summaryReferenceFid');
214
+ if (summaryReferenceFid)
215
+ field.summaryReferenceFid = parseXmlNumber(summaryReferenceFid);
216
+ const summaryTargetFid = getTagContent(fieldXml, 'summaryTargetFid');
217
+ if (summaryTargetFid)
218
+ field.summaryTargetFid = parseXmlNumber(summaryTargetFid);
219
+ const summaryFunction = getTagContent(fieldXml, 'summaryFunction');
220
+ if (summaryFunction)
221
+ field.summaryFunction = summaryFunction;
222
+ return field;
223
+ }
224
+ /**
225
+ * Parse a query element from GetSchema response
226
+ */
227
+ function parseSchemaQuery(queryXml) {
228
+ const query = {
229
+ id: parseXmlNumber(getAttribute(queryXml, 'id')),
230
+ name: getTagContent(queryXml, 'qyname') || getTagContent(queryXml, 'qname'),
231
+ type: getTagContent(queryXml, 'qytype'),
232
+ };
233
+ const desc = getTagContent(queryXml, 'qydesc');
234
+ if (desc)
235
+ query.description = desc;
236
+ const crit = getTagContent(queryXml, 'qycrit');
237
+ if (crit)
238
+ query.criteria = crit;
239
+ const clst = getTagContent(queryXml, 'qyclst');
240
+ if (clst)
241
+ query.columnList = clst;
242
+ const slst = getTagContent(queryXml, 'qyslst');
243
+ if (slst)
244
+ query.sortList = slst;
245
+ const opts = getTagContent(queryXml, 'qyopts');
246
+ if (opts)
247
+ query.options = opts;
248
+ const calst = getTagContent(queryXml, 'qycalst');
249
+ if (calst)
250
+ query.calcFields = calst;
251
+ return query;
252
+ }
253
+ /**
254
+ * Get comprehensive app/table schema information.
255
+ *
256
+ * When called on an app dbid: returns DBVars and child table dbids.
257
+ * When called on a table dbid: returns fields, queries, DBVars, and more.
258
+ *
259
+ * @see https://help.quickbase.com/docs/api-getschema
260
+ *
261
+ * @example
262
+ * ```typescript
263
+ * const schema = await getSchema(caller, 'bqtable123');
264
+ * console.log(`Table: ${schema.table.name}`);
265
+ * for (const field of schema.table.fields ?? []) {
266
+ * console.log(` Field ${field.id}: ${field.label} (${field.fieldType})`);
267
+ * }
268
+ * ```
269
+ */
270
+ export async function getSchema(caller, dbid) {
271
+ const body = buildRequest('');
272
+ const xml = await caller.doXml(dbid, 'API_GetSchema', body);
273
+ const base = parseBaseResponse(xml);
274
+ checkError(base);
275
+ // Parse top-level elements
276
+ const timeZone = getTagContent(xml, 'time_zone') || undefined;
277
+ const dateFormat = getTagContent(xml, 'date_format') || undefined;
278
+ // Parse table element
279
+ const tableMatch = xml.match(/<table>([\s\S]*?)<\/table>/);
280
+ if (!tableMatch) {
281
+ throw new Error('Invalid API_GetSchema response: no table element');
282
+ }
283
+ const tableXml = tableMatch[0];
284
+ const table = {
285
+ name: getTagContent(tableXml, 'name'),
286
+ description: getTagContent(tableXml, 'desc') || undefined,
287
+ };
288
+ // Parse original metadata
289
+ const originalMatch = tableXml.match(/<original>([\s\S]*?)<\/original>/);
290
+ if (originalMatch) {
291
+ const origXml = originalMatch[0];
292
+ const original = {};
293
+ const appId = getTagContent(origXml, 'app_id');
294
+ if (appId)
295
+ original.appId = appId;
296
+ const tableId = getTagContent(origXml, 'table_id');
297
+ if (tableId)
298
+ original.tableId = tableId;
299
+ const creDate = getTagContent(origXml, 'cre_date');
300
+ if (creDate)
301
+ original.createdTime = creDate;
302
+ const modDate = getTagContent(origXml, 'mod_date');
303
+ if (modDate)
304
+ original.modifiedTime = modDate;
305
+ const nextRecordId = getTagContent(origXml, 'next_record_id');
306
+ if (nextRecordId)
307
+ original.nextRecordId = parseXmlNumber(nextRecordId);
308
+ const nextFieldId = getTagContent(origXml, 'next_field_id');
309
+ if (nextFieldId)
310
+ original.nextFieldId = parseXmlNumber(nextFieldId);
311
+ const nextQueryId = getTagContent(origXml, 'next_query_id');
312
+ if (nextQueryId)
313
+ original.nextQueryId = parseXmlNumber(nextQueryId);
314
+ const defSortFid = getTagContent(origXml, 'def_sort_fid');
315
+ if (defSortFid)
316
+ original.defaultSortFid = parseXmlNumber(defSortFid);
317
+ const defSortOrder = getTagContent(origXml, 'def_sort_order');
318
+ if (defSortOrder)
319
+ original.defaultSortOrder = parseXmlNumber(defSortOrder);
320
+ table.original = original;
321
+ }
322
+ // Parse variables
323
+ const variablesMatch = tableXml.match(/<variables>([\s\S]*?)<\/variables>/);
324
+ if (variablesMatch) {
325
+ const varElements = getAllElements(variablesMatch[0], 'var');
326
+ table.variables = varElements.map((varXml) => ({
327
+ name: getAttribute(varXml, 'name'),
328
+ value: getTagContent(varXml, 'var') || '',
329
+ }));
330
+ }
331
+ // Parse child tables (chdbids)
332
+ const chdbidsMatch = tableXml.match(/<chdbids>([\s\S]*?)<\/chdbids>/);
333
+ if (chdbidsMatch) {
334
+ const chdbElements = getAllElements(chdbidsMatch[0], 'chdbid');
335
+ table.childTables = chdbElements.map((chXml) => ({
336
+ name: getAttribute(chXml, 'name'),
337
+ dbid: getTagContent(chXml, 'chdbid') || '',
338
+ }));
339
+ }
340
+ // Parse queries
341
+ const queriesMatch = tableXml.match(/<queries>([\s\S]*?)<\/queries>/);
342
+ if (queriesMatch) {
343
+ const queryElements = getAllElements(queriesMatch[0], 'query');
344
+ table.queries = queryElements.map(parseSchemaQuery);
345
+ }
346
+ // Parse fields
347
+ const fieldsMatch = tableXml.match(/<fields>([\s\S]*?)<\/fields>/);
348
+ if (fieldsMatch && fieldsMatch[0].length > 20) {
349
+ const fieldElements = getAllElements(fieldsMatch[0], 'field');
350
+ table.fields = fieldElements.map(parseSchemaField);
351
+ }
352
+ return { table, timeZone, dateFormat };
353
+ }
354
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/xml/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * XML API Response Transformation
3
+ *
4
+ * Transforms XML API responses to use field and table aliases as keys
5
+ * when a schema is configured, similar to the JSON API transformation.
6
+ *
7
+ * Without schema: record.fields is an array accessed by index or id
8
+ * With schema: record.fields is keyed by alias (e.g., record.fields.name)
9
+ *
10
+ * XML-API: Remove this file when QuickBase discontinues the XML API.
11
+ * To find all XML API code, search for: XML-API
12
+ */
13
+ import type { ResolvedSchema } from '../core/types.js';
14
+ import type { RecordField, SchemaField, GetRecordInfoResult, GetSchemaResult, FieldAddChoicesResult, FieldRemoveChoicesResult, DatabaseInfo, GrantedDBsResult, GrantedDBsForGroupResult, GetAppDTMInfoResult, FindDBByNameResult, SchemaChildTable } from './types.js';
15
+ /**
16
+ * RecordField as returned in the keyed object (alias is the key)
17
+ */
18
+ export interface RecordFieldWithAlias extends RecordField {
19
+ /** Field alias (duplicated from key for convenience) */
20
+ alias?: string;
21
+ }
22
+ /**
23
+ * SchemaField as returned in the keyed object (alias is the key)
24
+ */
25
+ export interface SchemaFieldWithAlias extends SchemaField {
26
+ /** Field alias (duplicated from key for convenience) */
27
+ alias?: string;
28
+ /** Summary reference field alias */
29
+ summaryReferenceFidAlias?: string;
30
+ /** Summary target field alias */
31
+ summaryTargetFidAlias?: string;
32
+ }
33
+ /**
34
+ * DatabaseInfo keyed by alias
35
+ */
36
+ export interface DatabaseInfoWithAlias extends DatabaseInfo {
37
+ /** Table alias (duplicated from key for convenience) */
38
+ alias?: string;
39
+ }
40
+ /**
41
+ * SchemaChildTable keyed by alias
42
+ */
43
+ export interface SchemaChildTableWithAlias extends SchemaChildTable {
44
+ /** Table alias (duplicated from key for convenience) */
45
+ alias?: string;
46
+ }
47
+ /**
48
+ * GetRecordInfoResult with fields keyed by alias.
49
+ * Access: result.fields.name.value
50
+ */
51
+ export interface GetRecordInfoResultWithAlias extends Omit<GetRecordInfoResult, 'fields'> {
52
+ fields: Record<string, RecordFieldWithAlias>;
53
+ }
54
+ /**
55
+ * GetSchemaResult with fields keyed by alias.
56
+ * Access: result.table.fields.name, result.table.childTables.tasks
57
+ */
58
+ export interface GetSchemaResultWithAlias extends Omit<GetSchemaResult, 'table'> {
59
+ table: Omit<GetSchemaResult['table'], 'fields' | 'childTables'> & {
60
+ fields?: Record<string, SchemaFieldWithAlias>;
61
+ childTables?: Record<string, SchemaChildTableWithAlias>;
62
+ };
63
+ }
64
+ /**
65
+ * FieldAddChoicesResult with alias
66
+ */
67
+ export interface FieldAddChoicesResultWithAlias extends FieldAddChoicesResult {
68
+ /** Field alias from schema (if available) */
69
+ fieldAlias?: string;
70
+ }
71
+ /**
72
+ * FieldRemoveChoicesResult with alias
73
+ */
74
+ export interface FieldRemoveChoicesResultWithAlias extends FieldRemoveChoicesResult {
75
+ /** Field alias from schema (if available) */
76
+ fieldAlias?: string;
77
+ }
78
+ /**
79
+ * GrantedDBsResult with databases keyed by alias.
80
+ * Access: result.databases.projects.dbname
81
+ */
82
+ export interface GrantedDBsResultWithAlias extends Omit<GrantedDBsResult, 'databases'> {
83
+ databases: Record<string, DatabaseInfoWithAlias>;
84
+ }
85
+ /**
86
+ * GrantedDBsForGroupResult with databases keyed by alias.
87
+ */
88
+ export interface GrantedDBsForGroupResultWithAlias extends Omit<GrantedDBsForGroupResult, 'databases'> {
89
+ databases: Record<string, {
90
+ dbid: string;
91
+ name: string;
92
+ alias?: string;
93
+ }>;
94
+ }
95
+ /**
96
+ * GetAppDTMInfoResult with tables keyed by alias.
97
+ * Access: result.tables.projects.lastModifiedTime
98
+ */
99
+ export interface GetAppDTMInfoResultWithAlias extends Omit<GetAppDTMInfoResult, 'tables'> {
100
+ appId: string;
101
+ appAlias?: string;
102
+ lastModifiedTime?: string;
103
+ lastRecModTime?: string;
104
+ tables: Record<string, {
105
+ id: string;
106
+ alias?: string;
107
+ lastModifiedTime?: string;
108
+ lastRecModTime?: string;
109
+ }>;
110
+ }
111
+ /**
112
+ * FindDBByNameResult with alias
113
+ */
114
+ export interface FindDBByNameResultWithAlias extends FindDBByNameResult {
115
+ /** Table alias from schema (if available) */
116
+ alias?: string;
117
+ }
118
+ /**
119
+ * Transform GetRecordInfoResult to key fields by alias.
120
+ * Access: result.fields.name.value (instead of result.fields[0].value)
121
+ */
122
+ export declare function transformGetRecordInfoResult(result: GetRecordInfoResult, schema: ResolvedSchema | undefined, tableId: string): GetRecordInfoResultWithAlias;
123
+ /**
124
+ * Transform GetSchemaResult to key fields and child tables by alias.
125
+ * Access: result.table.fields.name, result.table.childTables.tasks
126
+ */
127
+ export declare function transformGetSchemaResult(result: GetSchemaResult, schema: ResolvedSchema | undefined, tableId: string): GetSchemaResultWithAlias;
128
+ /**
129
+ * Transform FieldAddChoicesResult to include field alias
130
+ */
131
+ export declare function transformFieldAddChoicesResult(result: FieldAddChoicesResult, schema: ResolvedSchema | undefined, tableId: string): FieldAddChoicesResultWithAlias;
132
+ /**
133
+ * Transform FieldRemoveChoicesResult to include field alias
134
+ */
135
+ export declare function transformFieldRemoveChoicesResult(result: FieldRemoveChoicesResult, schema: ResolvedSchema | undefined, tableId: string): FieldRemoveChoicesResultWithAlias;
136
+ /**
137
+ * Transform GrantedDBsResult to key databases by alias.
138
+ * Access: result.databases.projects.dbname
139
+ */
140
+ export declare function transformGrantedDBsResult(result: GrantedDBsResult, schema: ResolvedSchema | undefined): GrantedDBsResultWithAlias;
141
+ /**
142
+ * Transform GrantedDBsForGroupResult to key databases by alias.
143
+ */
144
+ export declare function transformGrantedDBsForGroupResult(result: GrantedDBsForGroupResult, schema: ResolvedSchema | undefined): GrantedDBsForGroupResultWithAlias;
145
+ /**
146
+ * Transform GetAppDTMInfoResult to key tables by alias.
147
+ * Access: result.tables.projects.lastModifiedTime
148
+ */
149
+ export declare function transformGetAppDTMInfoResult(result: GetAppDTMInfoResult, schema: ResolvedSchema | undefined): GetAppDTMInfoResultWithAlias;
150
+ /**
151
+ * Transform FindDBByNameResult to include table alias
152
+ */
153
+ export declare function transformFindDBByNameResult(result: FindDBByNameResult, schema: ResolvedSchema | undefined): FindDBByNameResultWithAlias;
154
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/xml/transform.ts"],"names":[],"mappings":"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"}