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.
- package/README.md +700 -90
- package/bin/quickbase-js.js +54 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +5 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/ticket.d.ts +13 -0
- package/dist/auth/ticket.d.ts.map +1 -1
- package/dist/auth/ticket.js +103 -3
- package/dist/auth/ticket.js.map +1 -1
- package/dist/cli/schema.d.ts +23 -0
- package/dist/cli/schema.d.ts.map +1 -0
- package/dist/cli/schema.js +425 -0
- package/dist/cli/schema.js.map +1 -0
- package/dist/client/request.d.ts +2 -1
- package/dist/client/request.d.ts.map +1 -1
- package/dist/client/request.js +165 -18
- package/dist/client/request.js.map +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +4 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/errors.d.ts +17 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +32 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/schema.d.ts +37 -0
- package/dist/core/schema.d.ts.map +1 -0
- package/dist/core/schema.js +168 -0
- package/dist/core/schema.js.map +1 -0
- package/dist/core/transform.d.ts +36 -0
- package/dist/core/transform.d.ts.map +1 -0
- package/dist/core/transform.js +205 -0
- package/dist/core/transform.js.map +1 -0
- package/dist/core/types.d.ts +108 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/quickbase.esm.js +3 -3
- package/dist/quickbase.esm.js.map +4 -4
- package/dist/quickbase.min.js +3 -3
- package/dist/quickbase.min.js.map +4 -4
- package/dist/xml/codepages.d.ts +60 -0
- package/dist/xml/codepages.d.ts.map +1 -0
- package/dist/xml/codepages.js +88 -0
- package/dist/xml/codepages.js.map +1 -0
- package/dist/xml/dbvars.d.ts +39 -0
- package/dist/xml/dbvars.d.ts.map +1 -0
- package/dist/xml/dbvars.js +54 -0
- package/dist/xml/dbvars.js.map +1 -0
- package/dist/xml/errors.d.ts +64 -0
- package/dist/xml/errors.d.ts.map +1 -0
- package/dist/xml/errors.js +102 -0
- package/dist/xml/errors.js.map +1 -0
- package/dist/xml/fields.d.ts +45 -0
- package/dist/xml/fields.d.ts.map +1 -0
- package/dist/xml/fields.js +86 -0
- package/dist/xml/fields.js.map +1 -0
- package/dist/xml/groups.d.ts +196 -0
- package/dist/xml/groups.d.ts.map +1 -0
- package/dist/xml/groups.js +424 -0
- package/dist/xml/groups.js.map +1 -0
- package/dist/xml/html.d.ts +61 -0
- package/dist/xml/html.d.ts.map +1 -0
- package/dist/xml/html.js +110 -0
- package/dist/xml/html.js.map +1 -0
- package/dist/xml/index.d.ts +456 -0
- package/dist/xml/index.d.ts.map +1 -0
- package/dist/xml/index.js +747 -0
- package/dist/xml/index.js.map +1 -0
- package/dist/xml/metadata.d.ts +49 -0
- package/dist/xml/metadata.d.ts.map +1 -0
- package/dist/xml/metadata.js +84 -0
- package/dist/xml/metadata.js.map +1 -0
- package/dist/xml/records.d.ts +106 -0
- package/dist/xml/records.d.ts.map +1 -0
- package/dist/xml/records.js +220 -0
- package/dist/xml/records.js.map +1 -0
- package/dist/xml/request.d.ts +129 -0
- package/dist/xml/request.d.ts.map +1 -0
- package/dist/xml/request.js +190 -0
- package/dist/xml/request.js.map +1 -0
- package/dist/xml/roles.d.ts +117 -0
- package/dist/xml/roles.d.ts.map +1 -0
- package/dist/xml/roles.js +241 -0
- package/dist/xml/roles.js.map +1 -0
- package/dist/xml/schema.d.ts +94 -0
- package/dist/xml/schema.d.ts.map +1 -0
- package/dist/xml/schema.js +354 -0
- package/dist/xml/schema.js.map +1 -0
- package/dist/xml/transform.d.ts +154 -0
- package/dist/xml/transform.d.ts.map +1 -0
- package/dist/xml/transform.js +182 -0
- package/dist/xml/transform.js.map +1 -0
- package/dist/xml/types.d.ts +531 -0
- package/dist/xml/types.d.ts.map +1 -0
- package/dist/xml/types.js +22 -0
- package/dist/xml/types.js.map +1 -0
- package/dist/xml/users.d.ts +92 -0
- package/dist/xml/users.d.ts.map +1 -0
- package/dist/xml/users.js +166 -0
- package/dist/xml/users.js.map +1 -0
- package/dist/xml/webhooks.d.ts +98 -0
- package/dist/xml/webhooks.d.ts.map +1 -0
- package/dist/xml/webhooks.js +202 -0
- package/dist/xml/webhooks.js.map +1 -0
- package/package.json +6 -2
|
@@ -0,0 +1,182 @@
|
|
|
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 { getFieldAlias, getTableAlias } from '../core/schema.js';
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// Transformation Functions
|
|
16
|
+
// =============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Convert a fields array to a keyed object.
|
|
19
|
+
* Keys are field aliases (if in schema) or field IDs (as strings).
|
|
20
|
+
*/
|
|
21
|
+
function fieldsArrayToMap(fields, schema, tableId) {
|
|
22
|
+
const result = {};
|
|
23
|
+
for (const field of fields) {
|
|
24
|
+
const alias = schema ? getFieldAlias(schema, tableId, field.id) : undefined;
|
|
25
|
+
const key = alias ?? String(field.id);
|
|
26
|
+
result[key] = alias ? { ...field, alias } : field;
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Convert a databases array to a keyed object.
|
|
32
|
+
* Keys are table aliases (if in schema) or dbids.
|
|
33
|
+
*/
|
|
34
|
+
function databasesArrayToMap(databases, schema) {
|
|
35
|
+
const result = {};
|
|
36
|
+
for (const db of databases) {
|
|
37
|
+
const alias = schema ? getTableAlias(schema, db.dbid) : undefined;
|
|
38
|
+
const key = alias ?? db.dbid;
|
|
39
|
+
result[key] = alias ? { ...db, alias } : db;
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Convert a tables array to a keyed object.
|
|
45
|
+
* Keys are table aliases (if in schema) or table IDs.
|
|
46
|
+
*/
|
|
47
|
+
function tablesArrayToMap(tables, schema) {
|
|
48
|
+
const result = {};
|
|
49
|
+
for (const table of tables) {
|
|
50
|
+
const alias = schema ? getTableAlias(schema, table.id) : undefined;
|
|
51
|
+
const key = alias ?? table.id;
|
|
52
|
+
result[key] = alias ? { ...table, alias } : table;
|
|
53
|
+
}
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Transform a SchemaField to include extra alias properties
|
|
58
|
+
*/
|
|
59
|
+
function transformSchemaFieldAliases(field, schema, tableId) {
|
|
60
|
+
const result = { ...field };
|
|
61
|
+
const alias = getFieldAlias(schema, tableId, field.id);
|
|
62
|
+
if (alias)
|
|
63
|
+
result.alias = alias;
|
|
64
|
+
if (field.summaryReferenceFid !== undefined) {
|
|
65
|
+
const refAlias = getFieldAlias(schema, tableId, field.summaryReferenceFid);
|
|
66
|
+
if (refAlias)
|
|
67
|
+
result.summaryReferenceFidAlias = refAlias;
|
|
68
|
+
}
|
|
69
|
+
if (field.summaryTargetFid !== undefined) {
|
|
70
|
+
const targetAlias = getFieldAlias(schema, tableId, field.summaryTargetFid);
|
|
71
|
+
if (targetAlias)
|
|
72
|
+
result.summaryTargetFidAlias = targetAlias;
|
|
73
|
+
}
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Transform GetRecordInfoResult to key fields by alias.
|
|
78
|
+
* Access: result.fields.name.value (instead of result.fields[0].value)
|
|
79
|
+
*/
|
|
80
|
+
export function transformGetRecordInfoResult(result, schema, tableId) {
|
|
81
|
+
return {
|
|
82
|
+
...result,
|
|
83
|
+
fields: fieldsArrayToMap(result.fields, schema, tableId),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Transform GetSchemaResult to key fields and child tables by alias.
|
|
88
|
+
* Access: result.table.fields.name, result.table.childTables.tasks
|
|
89
|
+
*/
|
|
90
|
+
export function transformGetSchemaResult(result, schema, tableId) {
|
|
91
|
+
const transformedTable = {
|
|
92
|
+
...result.table,
|
|
93
|
+
fields: undefined,
|
|
94
|
+
childTables: undefined,
|
|
95
|
+
};
|
|
96
|
+
// Transform fields to keyed object with extra alias properties
|
|
97
|
+
if (result.table.fields) {
|
|
98
|
+
const fieldsMap = {};
|
|
99
|
+
for (const field of result.table.fields) {
|
|
100
|
+
const transformed = schema
|
|
101
|
+
? transformSchemaFieldAliases(field, schema, tableId)
|
|
102
|
+
: field;
|
|
103
|
+
const alias = schema ? getFieldAlias(schema, tableId, field.id) : undefined;
|
|
104
|
+
const key = alias ?? String(field.id);
|
|
105
|
+
fieldsMap[key] = alias ? { ...transformed, alias } : transformed;
|
|
106
|
+
}
|
|
107
|
+
transformedTable.fields = fieldsMap;
|
|
108
|
+
}
|
|
109
|
+
// Transform child tables to keyed object
|
|
110
|
+
if (result.table.childTables) {
|
|
111
|
+
const childTablesMap = {};
|
|
112
|
+
for (const ct of result.table.childTables) {
|
|
113
|
+
const alias = schema ? getTableAlias(schema, ct.dbid) : undefined;
|
|
114
|
+
const key = alias ?? ct.dbid;
|
|
115
|
+
childTablesMap[key] = alias ? { ...ct, alias } : ct;
|
|
116
|
+
}
|
|
117
|
+
transformedTable.childTables = childTablesMap;
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
...result,
|
|
121
|
+
table: transformedTable,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Transform FieldAddChoicesResult to include field alias
|
|
126
|
+
*/
|
|
127
|
+
export function transformFieldAddChoicesResult(result, schema, tableId) {
|
|
128
|
+
if (!schema)
|
|
129
|
+
return result;
|
|
130
|
+
const alias = getFieldAlias(schema, tableId, result.fieldId);
|
|
131
|
+
return alias ? { ...result, fieldAlias: alias } : result;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Transform FieldRemoveChoicesResult to include field alias
|
|
135
|
+
*/
|
|
136
|
+
export function transformFieldRemoveChoicesResult(result, schema, tableId) {
|
|
137
|
+
if (!schema)
|
|
138
|
+
return result;
|
|
139
|
+
const alias = getFieldAlias(schema, tableId, result.fieldId);
|
|
140
|
+
return alias ? { ...result, fieldAlias: alias } : result;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Transform GrantedDBsResult to key databases by alias.
|
|
144
|
+
* Access: result.databases.projects.dbname
|
|
145
|
+
*/
|
|
146
|
+
export function transformGrantedDBsResult(result, schema) {
|
|
147
|
+
return {
|
|
148
|
+
...result,
|
|
149
|
+
databases: databasesArrayToMap(result.databases, schema),
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Transform GrantedDBsForGroupResult to key databases by alias.
|
|
154
|
+
*/
|
|
155
|
+
export function transformGrantedDBsForGroupResult(result, schema) {
|
|
156
|
+
return {
|
|
157
|
+
...result,
|
|
158
|
+
databases: databasesArrayToMap(result.databases, schema),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Transform GetAppDTMInfoResult to key tables by alias.
|
|
163
|
+
* Access: result.tables.projects.lastModifiedTime
|
|
164
|
+
*/
|
|
165
|
+
export function transformGetAppDTMInfoResult(result, schema) {
|
|
166
|
+
const appAlias = schema ? getTableAlias(schema, result.appId) : undefined;
|
|
167
|
+
return {
|
|
168
|
+
...result,
|
|
169
|
+
appAlias,
|
|
170
|
+
tables: tablesArrayToMap(result.tables, schema),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Transform FindDBByNameResult to include table alias
|
|
175
|
+
*/
|
|
176
|
+
export function transformFindDBByNameResult(result, schema) {
|
|
177
|
+
if (!schema)
|
|
178
|
+
return result;
|
|
179
|
+
const alias = getTableAlias(schema, result.dbid);
|
|
180
|
+
return alias ? { ...result, alias } : result;
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/xml/transform.ts"],"names":[],"mappings":"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"}
|