quickbase-js 1.1.0-beta.3 → 1.1.0-beta.4

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 (46) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +61 -5
  3. package/dist/quickbase.d.ts +1108 -349
  4. package/dist/quickbase.js +828 -263
  5. package/dist/quickbase.js.map +1 -1
  6. package/examples/react.js +12 -12
  7. package/examples/vanillajs.html +12 -12
  8. package/log-gen.yaml +4622 -759
  9. package/package.json +12 -14
  10. package/playwright-results.txt/.last-run.json +4 -0
  11. package/playwright.config.ts +1 -1
  12. package/src/code-generation/definitions/apps.ts +274 -0
  13. package/src/code-generation/definitions/auth.ts +10 -0
  14. package/src/code-generation/definitions/fields.ts +751 -0
  15. package/src/code-generation/definitions/index.ts +18 -0
  16. package/src/code-generation/definitions/records.ts +269 -0
  17. package/src/code-generation/definitions/relationships.ts +90 -0
  18. package/src/code-generation/definitions/reports.ts +10 -0
  19. package/src/code-generation/definitions/tables.ts +112 -0
  20. package/src/code-generation/fix-spec-main.ts +2 -2
  21. package/src/code-generation/output/quickbase-fixed.json +3244 -4586
  22. package/src/code-generation/paths/apps.ts +100 -0
  23. package/src/code-generation/paths/auth.ts +25 -0
  24. package/src/code-generation/paths/fields.ts +207 -0
  25. package/src/code-generation/paths/index.ts +17 -0
  26. package/src/code-generation/paths/records.ts +68 -0
  27. package/src/code-generation/paths/relationships.ts +32 -0
  28. package/src/code-generation/paths/reports.ts +34 -0
  29. package/src/code-generation/paths/tables.ts +162 -0
  30. package/src/generated-unified/QuickbaseClient.ts +7 -6
  31. package/src/log-gen.ts +8 -6
  32. package/tests/vitest/qb/fields/createField.test.ts +78 -0
  33. package/tests/vitest/qb/fields/deleteFields.test.ts +89 -0
  34. package/tests/vitest/qb/fields/getField.test.ts +85 -0
  35. package/tests/vitest/qb/fields/getFieldUsage.test.ts +174 -0
  36. package/tests/vitest/qb/fields/getFieldsUsage.test.ts +77 -0
  37. package/tests/vitest/qb/index.ts +25 -1
  38. package/tests/vitest/unit/fields/createField.test.ts +391 -0
  39. package/tests/vitest/unit/fields/deleteFields.test.ts +141 -0
  40. package/tests/vitest/unit/fields/getField.test.ts +189 -0
  41. package/tests/vitest/unit/fields/getFieldUsage.test.ts +147 -0
  42. package/tests/vitest/unit/fields/getFieldsUsage.test.ts +160 -0
  43. package/tests/vitest/unit/index.ts +30 -1
  44. package/src/code-generation/fix-spec-definitions.ts +0 -809
  45. package/src/code-generation/fix-spec-paths.ts +0 -439
  46. package/test-artifacts/test-results.json +0 -829
@@ -1,829 +0,0 @@
1
- {
2
- "config": {
3
- "configFile": "/home/drew/Projects/quickbase-js/playwright.config.ts",
4
- "rootDir": "/home/drew/Projects/quickbase-js/tests/playwright",
5
- "forbidOnly": false,
6
- "fullyParallel": true,
7
- "globalSetup": null,
8
- "globalTeardown": null,
9
- "globalTimeout": 0,
10
- "grep": {},
11
- "grepInvert": null,
12
- "maxFailures": 0,
13
- "metadata": {
14
- "actualWorkers": 4
15
- },
16
- "preserveOutput": "always",
17
- "reporter": [
18
- [
19
- "list",
20
- null
21
- ],
22
- [
23
- "json",
24
- {
25
- "outputFile": "test-artifacts/test-results.json"
26
- }
27
- ]
28
- ],
29
- "reportSlowTests": {
30
- "max": 5,
31
- "threshold": 300000
32
- },
33
- "quiet": false,
34
- "projects": [
35
- {
36
- "outputDir": "/home/drew/Projects/quickbase-js/test-artifacts",
37
- "repeatEach": 1,
38
- "retries": 2,
39
- "metadata": {
40
- "actualWorkers": 4
41
- },
42
- "id": "chromium",
43
- "name": "chromium",
44
- "testDir": "/home/drew/Projects/quickbase-js/tests/playwright",
45
- "testIgnore": [],
46
- "testMatch": [
47
- "**/*.@(spec|test).?(c|m)[jt]s?(x)"
48
- ],
49
- "timeout": 600000
50
- }
51
- ],
52
- "shard": null,
53
- "updateSnapshots": "missing",
54
- "updateSourceMethod": "patch",
55
- "version": "1.51.0",
56
- "workers": 4,
57
- "webServer": null
58
- },
59
- "suites": [
60
- {
61
- "title": "qb/auth/cacheSwitching.test.ts",
62
- "file": "qb/auth/cacheSwitching.test.ts",
63
- "column": 0,
64
- "line": 0,
65
- "specs": [],
66
- "suites": [
67
- {
68
- "title": "QuickbaseClient Integration - Cache Switching with Temp Tokens",
69
- "file": "qb/auth/cacheSwitching.test.ts",
70
- "line": 61,
71
- "column": 6,
72
- "specs": [
73
- {
74
- "title": "caches and switches tokens for different DBIDs with getApp → getFields → getApp sequence",
75
- "ok": true,
76
- "tags": [],
77
- "tests": [
78
- {
79
- "timeout": 600000,
80
- "annotations": [],
81
- "expectedStatus": "passed",
82
- "projectId": "chromium",
83
- "projectName": "chromium",
84
- "results": [
85
- {
86
- "workerIndex": 0,
87
- "parallelIndex": 0,
88
- "status": "passed",
89
- "duration": 19930,
90
- "errors": [],
91
- "stdout": [
92
- {
93
- "text": "Starting cacheSwitching test\n"
94
- },
95
- {
96
- "text": "Logging in to QuickBase\n"
97
- },
98
- {
99
- "text": "Navigating to login page\n"
100
- },
101
- {
102
- "text": "Waiting for loginid selector\n"
103
- },
104
- {
105
- "text": "Clicking signin\n"
106
- },
107
- {
108
- "text": "Waiting for navigation\n"
109
- },
110
- {
111
- "text": "Signed In to QuickBase.\n"
112
- },
113
- {
114
- "text": "Post-login URL after app navigation: https://builderprogram-dbradford6815.quickbase.com/nav/app/buwai2zpe/action/appoverview\n"
115
- },
116
- {
117
- "text": "Proxy called getApp with: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
118
- },
119
- {
120
- "text": "Cache state before fetch for buwai2zpe: []\n"
121
- },
122
- {
123
- "text": "Raw response from https://api.quickbase.com/v1/auth/temporary/buwai2zpe: {\n status: \u001b[33m200\u001b[39m,\n statusText: \u001b[32m''\u001b[39m,\n body: \u001b[32m'{\"temporaryAuthorization\":\"VEtU.OV9idXlibTR0aG5fYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfbnpla3l6Y3VldnU3ZW1nNjVubmR0ZW41aHFieHA2N2Y1ZGdjN2ppYjhhdzJ1NmNucmJ3ZWRfaXluNnU5Mg==\"}'\u001b[39m\n}\n"
124
- },
125
- {
126
- "text": "Fetched and cached new token for dbid: buwai2zpe VEtU.OV9idXlibTR0aG5fYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfbnpla3l6Y3VldnU3ZW1nNjVubmR0ZW41aHFieHA2N2Y1ZGdjN2ppYjhhdzJ1NmNucmJ3ZWRfaXluNnU5Mg== Expires at: 2025-03-11T01:06:27.022Z\n"
127
- },
128
- {
129
- "text": "Invoking getApp with params: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
130
- },
131
- {
132
- "text": "Calling method with args: [\n { appId: \u001b[32m'buwai2zpe'\u001b[39m },\n {\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibTR0aG5fYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfbnpla3l6Y3VldnU3ZW1nNjVubmR0ZW41aHFieHA2N2Y1ZGdjN2ppYjhhdzJ1NmNucmJ3ZWRfaXluNnU5Mg=='\u001b[39m\n }\n }\n]\n"
133
- },
134
- {
135
- "text": "Fetching https://api.quickbase.com/v1/apps/buwai2zpe with init: {\n method: \u001b[32m'GET'\u001b[39m,\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibTR0aG5fYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfbnpla3l6Y3VldnU3ZW1nNjVubmR0ZW41aHFieHA2N2Y1ZGdjN2ppYjhhdzJ1NmNucmJ3ZWRfaXluNnU5Mg=='\u001b[39m\n },\n body: \u001b[90mundefined\u001b[39m,\n credentials: \u001b[32m'include'\u001b[39m\n}\n"
136
- },
137
- {
138
- "text": "Raw response from https://api.quickbase.com/v1/apps/buwai2zpe: {\n status: \u001b[33m200\u001b[39m,\n statusText: \u001b[32m'OK'\u001b[39m,\n body: \u001b[32m'{\"created\":\"2025-02-13T18:22:33Z\",\"dateFormat\":\"MM-DD-YYYY\",\"description\":\"\",\"hasEveryoneOnTheInternet\":false,\"id\":\"buwai2zpe\",\"memoryInfo\":{\"estMemory\":0.0,\"estMemoryInclDependentApps\":0.0},\"name\":\"qb-copy\",\"securityProperties\":{\"allowClone\":false,\"allowExport\":true,\"enableAppTokens\":true,\"hideFromPublic\":false,\"mustBeRealmApproved\":false,\"useIPFilter\":false},\"timeZone\":\"(UTC-08:00) Pacific Time (US & Canada)\",\"updated\":\"2025-03-11T00:50:35Z\"}'\u001b[39m\n}\n"
139
- },
140
- {
141
- "text": "Response from getApp: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
142
- },
143
- {
144
- "text": "First getApp response: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
145
- },
146
- {
147
- "text": "Proxy called getFields with: { tableId: \u001b[32m'buwai2zws'\u001b[39m }\n"
148
- },
149
- {
150
- "text": "Cache state before fetch for buwai2zws: [\n [\n \u001b[32m'buwai2zpe'\u001b[39m,\n {\n token: \u001b[32m'VEtU.OV9idXlibTR0aG5fYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfbnpla3l6Y3VldnU3ZW1nNjVubmR0ZW41aHFieHA2N2Y1ZGdjN2ppYjhhdzJ1NmNucmJ3ZWRfaXluNnU5Mg=='\u001b[39m,\n expiresAt: \u001b[33m1741655187022\u001b[39m\n }\n ]\n]\n"
151
- },
152
- {
153
- "text": "Raw response from https://api.quickbase.com/v1/auth/temporary/buwai2zws: {\n status: \u001b[33m200\u001b[39m,\n statusText: \u001b[32m''\u001b[39m,\n body: \u001b[32m'{\"temporaryAuthorization\":\"VEtU.OV9idXlibTR1czlfYjlmM3BrX3E0amRfYV9idXdhaTJ6d3NfZHI0dndwaTNlcXV0MmM3ZTNqZzd0cnA2ZGJld3JjNXdkZGIzZDh5Nzc1Zmt6ZHdjbm42cl9peW42dmF1\"}'\u001b[39m\n}\n"
154
- },
155
- {
156
- "text": "Fetched and cached new token for dbid: buwai2zws VEtU.OV9idXlibTR1czlfYjlmM3BrX3E0amRfYV9idXdhaTJ6d3NfZHI0dndwaTNlcXV0MmM3ZTNqZzd0cnA2ZGJld3JjNXdkZGIzZDh5Nzc1Zmt6ZHdjbm42cl9peW42dmF1 Expires at: 2025-03-11T01:06:28.373Z\n"
157
- },
158
- {
159
- "text": "Invoking getFields with params: { tableId: \u001b[32m'buwai2zws'\u001b[39m }\n"
160
- },
161
- {
162
- "text": "Calling method with args: [\n { tableId: \u001b[32m'buwai2zws'\u001b[39m },\n {\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibTR1czlfYjlmM3BrX3E0amRfYV9idXdhaTJ6d3NfZHI0dndwaTNlcXV0MmM3ZTNqZzd0cnA2ZGJld3JjNXdkZGIzZDh5Nzc1Zmt6ZHdjbm42cl9peW42dmF1'\u001b[39m\n }\n }\n]\n"
163
- },
164
- {
165
- "text": "Fetching https://api.quickbase.com/v1/fields?tableId=buwai2zws with init: {\n method: \u001b[32m'GET'\u001b[39m,\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibTR1czlfYjlmM3BrX3E0amRfYV9idXdhaTJ6d3NfZHI0dndwaTNlcXV0MmM3ZTNqZzd0cnA2ZGJld3JjNXdkZGIzZDh5Nzc1Zmt6ZHdjbm42cl9peW42dmF1'\u001b[39m\n },\n body: \u001b[90mundefined\u001b[39m,\n credentials: \u001b[32m'include'\u001b[39m\n}\n"
166
- },
167
- {
168
- "text": "Raw response from https://api.quickbase.com/v1/fields?tableId=buwai2zws: {\n status: \u001b[33m200\u001b[39m,\n statusText: \u001b[32m'OK'\u001b[39m,\n body: \u001b[32m'[{\"appearsByDefault\":true,\"audited\":false,\"bold\":false,\"doesDataCopy\":true,\"fieldHelp\":\"\",\"fieldType\":\"text\",\"findEnabled\":true,\"id\":6,\"label\":\"Test\",\"mode\":\"\",\"noWrap\":false,\"properties\":{\"allowHTML\":false,\"allowMentions\":false,\"allowNewChoices\":false,\"appendOnly\":false,\"carryChoices\":true,\"defaultValue\":\"\",\"foreignKey\":false,\"formula\":\"\",\"maxLength\":0,\"numLines\":1,\"primaryKey\":false,\"sortAsGiven\":true},\"required\":false,\"unique\":false},{\"appearsByDefault\":false,\"audited\":false,\"bold\":false,\"doesDataCopy\":false,\"fieldHelp\":\"\",\"fieldType\":\"timestamp\",\"findEnabled\":false,\"id\":1,\"label\":\"Date Created\",\"mode\":\"\",\"noWrap\":true,\"properties\":{\"allowNewChoices\":false,\"carryChoices\":true,\"defaultToday\":false,\"defaultValue\":\"\",\"displayDayOfWeek\":false,\"displayMonth\":\"number\",\"displayRelative\":false,\"displayTime\":true,\"displayTimezone\":false,\"foreignKey\":false,\"formula\":\"\",\"primaryKey\":false,\"sortAsGiven\":true},\"required\":false,\"unique\":false},{\"appearsByDefault\":false,\"audited\":false,\"bold\":false,\"doesDataCopy\":false,\"fieldHelp\":\"\",\"fieldType\":\"timestamp\",\"findEnabled\":false,\"id\":2,\"label\":\"Date Modified\",\"mode\":\"\",\"noWrap\":true,\"properties\":{\"allowNewChoices\":false,\"carryChoices\":true,\"defaultToday\":false,\"defaultValue\":\"\",\"displayDayOfWeek\":false,\"displayMonth\":\"number\",\"displayRelative\":false,\"displayTime\":true,\"displayTimezone\":false,\"foreignKey\":false,\"formula\":\"\",\"primaryKey\":false,\"sortAsGiven\":true},\"required\":false,\"unique\":false},{\"appearsByDefault\":false,\"audited\":false,\"bold\":false,\"doesDataCopy\":false,\"fieldHelp\":\"\",\"fieldType\":\"recordid\",\"findEnabled\":false,\"id\":3,\"label\":\"Record ID#\",\"mode\":\"\",\"noWrap\":true,\"properties\":{\"allowNewChoices\":false,\"blankIsZero\":true,\"carryChoices\":true,\"commaStart\":4,\"decimalPlaces\":0,\"defaultValue\":\"\",\"doesAverage\":false,\"doesTotal\":false,\"foreignKey\":false,\"formula\":\"\",\"numberFormat\":0,\"primaryKey\":true,\"sortAsGiven\":true},\"required\":false,\"unique\":true},{\"appearsByDefault\":false,\"audited\":false,\"bold\":false,\"doesDataCopy\":false,\"fieldHelp\":\"\",\"fieldType\":\"user\",\"findEnabled\":true,\"id\":4,\"label\":\"Record Owner\",\"mode\":\"\",\"noWrap\":true,\"properties\":{\"allowNewChoices\":true,\"carryChoices\":true,\"defaultKind\":\"none\",\"defaultValue\":\"\",\"displayUser\":\"fullnamelf\",\"foreignKey\":false,\"formula\":\"\",\"primaryKey\":false,\"sortAsGiven\":true},\"required\":false,\"unique\":false},{\"appearsByDefault\":false,\"audited\":false,\"bold\":false,\"doesDataCopy\":false,\"fieldHelp\":\"\",\"fieldType\":\"user\",\"findEnabled\":true,\"id\":5,\"label\":\"Last Modified By\",\"mode\":\"\",\"noWrap\":true,\"properties\":{\"allowNewChoices\":true,\"carryChoices\":true,\"defaultKind\":\"none\",\"defaultValue\":\"\",\"displayUser\":\"fullnamelf\",\"foreignKey\":false,\"formula\":\"\",\"primaryKey\":false,\"sortAsGiven\":true},\"required\":false,\"unique\":false}]'\u001b[39m\n}\n"
169
- },
170
- {
171
- "text": "Response from getFields: [\n {\n id: \u001b[33m6\u001b[39m,\n label: \u001b[32m'Test'\u001b[39m,\n fieldType: \u001b[32m'text'\u001b[39m,\n noWrap: \u001b[33mfalse\u001b[39m,\n bold: \u001b[33mfalse\u001b[39m,\n required: \u001b[33mfalse\u001b[39m,\n appearsByDefault: \u001b[33mtrue\u001b[39m,\n findEnabled: \u001b[33mtrue\u001b[39m,\n unique: \u001b[33mfalse\u001b[39m,\n doesDataCopy: \u001b[33mtrue\u001b[39m,\n fieldHelp: \u001b[32m''\u001b[39m,\n audited: \u001b[33mfalse\u001b[39m,\n properties: {\n primaryKey: \u001b[33mfalse\u001b[39m,\n foreignKey: \u001b[33mfalse\u001b[39m,\n numLines: \u001b[33m1\u001b[39m,\n maxLength: \u001b[33m0\u001b[39m,\n appendOnly: \u001b[33mfalse\u001b[39m,\n allowHTML: \u001b[33mfalse\u001b[39m,\n allowMentions: \u001b[33mfalse\u001b[39m,\n sortAsGiven: \u001b[33mtrue\u001b[39m,\n carryChoices: \u001b[33mtrue\u001b[39m,\n allowNewChoices: \u001b[33mfalse\u001b[39m,\n formula: \u001b[32m''\u001b[39m,\n defaultValue: \u001b[32m''\u001b[39m\n },\n permissions: \u001b[90mundefined\u001b[39m\n },\n {\n id: \u001b[33m1\u001b[39m,\n label: \u001b[32m'Date Created'\u001b[39m,\n fieldType: \u001b[32m'timestamp'\u001b[39m,\n noWrap: \u001b[33mtrue\u001b[39m,\n bold: \u001b[33mfalse\u001b[39m,\n required: \u001b[33mfalse\u001b[39m,\n appearsByDefault: \u001b[33mfalse\u001b[39m,\n findEnabled: \u001b[33mfalse\u001b[39m,\n unique: \u001b[33mfalse\u001b[39m,\n doesDataCopy: \u001b[33mfalse\u001b[39m,\n fieldHelp: \u001b[32m''\u001b[39m,\n audited: \u001b[33mfalse\u001b[39m,\n properties: {\n primaryKey: \u001b[33mfalse\u001b[39m,\n foreignKey: \u001b[33mfalse\u001b[39m,\n numLines: \u001b[90mundefined\u001b[39m,\n maxLength: \u001b[90mundefined\u001b[39m,\n appendOnly: \u001b[90mundefined\u001b[39m,\n allowHTML: \u001b[90mundefined\u001b[39m,\n allowMentions: \u001b[90mundefined\u001b[39m,\n sortAsGiven: \u001b[33mtrue\u001b[39m,\n carryChoices: \u001b[33mtrue\u001b[39m,\n allowNewChoices: \u001b[33mfalse\u001b[39m,\n formula: \u001b[32m''\u001b[39m,\n defaultValue: \u001b[32m''\u001b[39m\n },\n permissions: \u001b[90mundefined\u001b[39m\n },\n {\n id: \u001b[33m2\u001b[39m,\n label: \u001b[32m'Date Modified'\u001b[39m,\n fieldType: \u001b[32m'timestamp'\u001b[39m,\n noWrap: \u001b[33mtrue\u001b[39m,\n bold: \u001b[33mfalse\u001b[39m,\n required: \u001b[33mfalse\u001b[39m,\n appearsByDefault: \u001b[33mfalse\u001b[39m,\n findEnabled: \u001b[33mfalse\u001b[39m,\n unique: \u001b[33mfalse\u001b[39m,\n doesDataCopy: \u001b[33mfalse\u001b[39m,\n fieldHelp: \u001b[32m''\u001b[39m,\n audited: \u001b[33mfalse\u001b[39m,\n properties: {\n primaryKey: \u001b[33mfalse\u001b[39m,\n foreignKey: \u001b[33mfalse\u001b[39m,\n numLines: \u001b[90mundefined\u001b[39m,\n maxLength: \u001b[90mundefined\u001b[39m,\n appendOnly: \u001b[90mundefined\u001b[39m,\n allowHTML: \u001b[90mundefined\u001b[39m,\n allowMentions: \u001b[90mundefined\u001b[39m,\n sortAsGiven: \u001b[33mtrue\u001b[39m,\n carryChoices: \u001b[33mtrue\u001b[39m,\n allowNewChoices: \u001b[33mfalse\u001b[39m,\n formula: \u001b[32m''\u001b[39m,\n defaultValue: \u001b[32m''\u001b[39m\n },\n permissions: \u001b[90mundefined\u001b[39m\n },\n {\n id: \u001b[33m3\u001b[39m,\n label: \u001b[32m'Record ID#'\u001b[39m,\n fieldType: \u001b[32m'recordid'\u001b[39m,\n noWrap: \u001b[33mtrue\u001b[39m,\n bold: \u001b[33mfalse\u001b[39m,\n required: \u001b[33mfalse\u001b[39m,\n appearsByDefault: \u001b[33mfalse\u001b[39m,\n findEnabled: \u001b[33mfalse\u001b[39m,\n unique: \u001b[33mtrue\u001b[39m,\n doesDataCopy: \u001b[33mfalse\u001b[39m,\n fieldHelp: \u001b[32m''\u001b[39m,\n audited: \u001b[33mfalse\u001b[39m,\n properties: {\n primaryKey: \u001b[33mtrue\u001b[39m,\n foreignKey: \u001b[33mfalse\u001b[39m,\n numLines: \u001b[90mundefined\u001b[39m,\n maxLength: \u001b[90mundefined\u001b[39m,\n appendOnly: \u001b[90mundefined\u001b[39m,\n allowHTML: \u001b[90mundefined\u001b[39m,\n allowMentions: \u001b[90mundefined\u001b[39m,\n sortAsGiven: \u001b[33mtrue\u001b[39m,\n carryChoices: \u001b[33mtrue\u001b[39m,\n allowNewChoices: \u001b[33mfalse\u001b[39m,\n formula: \u001b[32m''\u001b[39m,\n defaultValue: \u001b[32m''\u001b[39m\n },\n permissions: \u001b[90mundefined\u001b[39m\n },\n {\n id: \u001b[33m4\u001b[39m,\n label: \u001b[32m'Record Owner'\u001b[39m,\n fieldType: \u001b[32m'user'\u001b[39m,\n noWrap: \u001b[33mtrue\u001b[39m,\n bold: \u001b[33mfalse\u001b[39m,\n required: \u001b[33mfalse\u001b[39m,\n appearsByDefault: \u001b[33mfalse\u001b[39m,\n findEnabled: \u001b[33mtrue\u001b[39m,\n unique: \u001b[33mfalse\u001b[39m,\n doesDataCopy: \u001b[33mfalse\u001b[39m,\n fieldHelp: \u001b[32m''\u001b[39m,\n audited: \u001b[33mfalse\u001b[39m,\n properties: {\n primaryKey: \u001b[33mfalse\u001b[39m,\n foreignKey: \u001b[33mfalse\u001b[39m,\n numLines: \u001b[90mundefined\u001b[39m,\n maxLength: \u001b[90mundefined\u001b[39m,\n appendOnly: \u001b[90mundefined\u001b[39m,\n allowHTML: \u001b[90mundefined\u001b[39m,\n allowMentions: \u001b[90mundefined\u001b[39m,\n sortAsGiven: \u001b[33mtrue\u001b[39m,\n carryChoices: \u001b[33mtrue\u001b[39m,\n allowNewChoices: \u001b[33mtrue\u001b[39m,\n formula: \u001b[32m''\u001b[39m,\n defaultValue: \u001b[32m''\u001b[39m\n },\n permissions: \u001b[90mundefined\u001b[39m\n },\n {\n id: \u001b[33m5\u001b[39m,\n label: \u001b[32m'Last Modified By'\u001b[39m,\n fieldType: \u001b[32m'user'\u001b[39m,\n noWrap: \u001b[33mtrue\u001b[39m,\n bold: \u001b[33mfalse\u001b[39m,\n required: \u001b[33mfalse\u001b[39m,\n appearsByDefault: \u001b[33mfalse\u001b[39m,\n findEnabled: \u001b[33mtrue\u001b[39m,\n unique: \u001b[33mfalse\u001b[39m,\n doesDataCopy: \u001b[33mfalse\u001b[39m,\n fieldHelp: \u001b[32m''\u001b[39m,\n audited: \u001b[33mfalse\u001b[39m,\n properties: {\n primaryKey: \u001b[33mfalse\u001b[39m,\n foreignKey: \u001b[33mfalse\u001b[39m,\n numLines: \u001b[90mundefined\u001b[39m,\n maxLength: \u001b[90mundefined\u001b[39m,\n appendOnly: \u001b[90mundefined\u001b[39m,\n allowHTML: \u001b[90mundefined\u001b[39m,\n allowMentions: \u001b[90mundefined\u001b[39m,\n sortAsGiven: \u001b[33mtrue\u001b[39m,\n carryChoices: \u001b[33mtrue\u001b[39m,\n allowNewChoices: \u001b[33mtrue\u001b[39m,\n formula: \u001b[32m''\u001b[39m,\n defaultValue: \u001b[32m''\u001b[39m\n },\n permissions: \u001b[90mundefined\u001b[39m\n }\n]\n"
172
- },
173
- {
174
- "text": "getFields response: [\n {\n id: \u001b[33m6\u001b[39m,\n label: \u001b[32m'Test'\u001b[39m,\n fieldType: \u001b[32m'text'\u001b[39m,\n noWrap: \u001b[33mfalse\u001b[39m,\n bold: \u001b[33mfalse\u001b[39m,\n required: \u001b[33mfalse\u001b[39m,\n appearsByDefault: \u001b[33mtrue\u001b[39m,\n findEnabled: \u001b[33mtrue\u001b[39m,\n unique: \u001b[33mfalse\u001b[39m,\n doesDataCopy: \u001b[33mtrue\u001b[39m,\n fieldHelp: \u001b[32m''\u001b[39m,\n audited: \u001b[33mfalse\u001b[39m,\n properties: {\n primaryKey: \u001b[33mfalse\u001b[39m,\n foreignKey: \u001b[33mfalse\u001b[39m,\n numLines: \u001b[33m1\u001b[39m,\n maxLength: \u001b[33m0\u001b[39m,\n appendOnly: \u001b[33mfalse\u001b[39m,\n allowHTML: \u001b[33mfalse\u001b[39m,\n allowMentions: \u001b[33mfalse\u001b[39m,\n sortAsGiven: \u001b[33mtrue\u001b[39m,\n carryChoices: \u001b[33mtrue\u001b[39m,\n allowNewChoices: \u001b[33mfalse\u001b[39m,\n formula: \u001b[32m''\u001b[39m,\n defaultValue: \u001b[32m''\u001b[39m\n },\n permissions: \u001b[90mundefined\u001b[39m\n },\n {\n id: \u001b[33m1\u001b[39m,\n label: \u001b[32m'Date Created'\u001b[39m,\n fieldType: \u001b[32m'timestamp'\u001b[39m,\n noWrap: \u001b[33mtrue\u001b[39m,\n bold: \u001b[33mfalse\u001b[39m,\n required: \u001b[33mfalse\u001b[39m,\n appearsByDefault: \u001b[33mfalse\u001b[39m,\n findEnabled: \u001b[33mfalse\u001b[39m,\n unique: \u001b[33mfalse\u001b[39m,\n doesDataCopy: \u001b[33mfalse\u001b[39m,\n fieldHelp: \u001b[32m''\u001b[39m,\n audited: \u001b[33mfalse\u001b[39m,\n properties: {\n primaryKey: \u001b[33mfalse\u001b[39m,\n foreignKey: \u001b[33mfalse\u001b[39m,\n numLines: \u001b[90mundefined\u001b[39m,\n maxLength: \u001b[90mundefined\u001b[39m,\n appendOnly: \u001b[90mundefined\u001b[39m,\n allowHTML: \u001b[90mundefined\u001b[39m,\n allowMentions: \u001b[90mundefined\u001b[39m,\n sortAsGiven: \u001b[33mtrue\u001b[39m,\n carryChoices: \u001b[33mtrue\u001b[39m,\n allowNewChoices: \u001b[33mfalse\u001b[39m,\n formula: \u001b[32m''\u001b[39m,\n defaultValue: \u001b[32m''\u001b[39m\n },\n permissions: \u001b[90mundefined\u001b[39m\n },\n {\n id: \u001b[33m2\u001b[39m,\n label: \u001b[32m'Date Modified'\u001b[39m,\n fieldType: \u001b[32m'timestamp'\u001b[39m,\n noWrap: \u001b[33mtrue\u001b[39m,\n bold: \u001b[33mfalse\u001b[39m,\n required: \u001b[33mfalse\u001b[39m,\n appearsByDefault: \u001b[33mfalse\u001b[39m,\n findEnabled: \u001b[33mfalse\u001b[39m,\n unique: \u001b[33mfalse\u001b[39m,\n doesDataCopy: \u001b[33mfalse\u001b[39m,\n fieldHelp: \u001b[32m''\u001b[39m,\n audited: \u001b[33mfalse\u001b[39m,\n properties: {\n primaryKey: \u001b[33mfalse\u001b[39m,\n foreignKey: \u001b[33mfalse\u001b[39m,\n numLines: \u001b[90mundefined\u001b[39m,\n maxLength: \u001b[90mundefined\u001b[39m,\n appendOnly: \u001b[90mundefined\u001b[39m,\n allowHTML: \u001b[90mundefined\u001b[39m,\n allowMentions: \u001b[90mundefined\u001b[39m,\n sortAsGiven: \u001b[33mtrue\u001b[39m,\n carryChoices: \u001b[33mtrue\u001b[39m,\n allowNewChoices: \u001b[33mfalse\u001b[39m,\n formula: \u001b[32m''\u001b[39m,\n defaultValue: \u001b[32m''\u001b[39m\n },\n permissions: \u001b[90mundefined\u001b[39m\n },\n {\n id: \u001b[33m3\u001b[39m,\n label: \u001b[32m'Record ID#'\u001b[39m,\n fieldType: \u001b[32m'recordid'\u001b[39m,\n noWrap: \u001b[33mtrue\u001b[39m,\n bold: \u001b[33mfalse\u001b[39m,\n required: \u001b[33mfalse\u001b[39m,\n appearsByDefault: \u001b[33mfalse\u001b[39m,\n findEnabled: \u001b[33mfalse\u001b[39m,\n unique: \u001b[33mtrue\u001b[39m,\n doesDataCopy: \u001b[33mfalse\u001b[39m,\n fieldHelp: \u001b[32m''\u001b[39m,\n audited: \u001b[33mfalse\u001b[39m,\n properties: {\n primaryKey: \u001b[33mtrue\u001b[39m,\n foreignKey: \u001b[33mfalse\u001b[39m,\n numLines: \u001b[90mundefined\u001b[39m,\n maxLength: \u001b[90mundefined\u001b[39m,\n appendOnly: \u001b[90mundefined\u001b[39m,\n allowHTML: \u001b[90mundefined\u001b[39m,\n allowMentions: \u001b[90mundefined\u001b[39m,\n sortAsGiven: \u001b[33mtrue\u001b[39m,\n carryChoices: \u001b[33mtrue\u001b[39m,\n allowNewChoices: \u001b[33mfalse\u001b[39m,\n formula: \u001b[32m''\u001b[39m,\n defaultValue: \u001b[32m''\u001b[39m\n },\n permissions: \u001b[90mundefined\u001b[39m\n },\n {\n id: \u001b[33m4\u001b[39m,\n label: \u001b[32m'Record Owner'\u001b[39m,\n fieldType: \u001b[32m'user'\u001b[39m,\n noWrap: \u001b[33mtrue\u001b[39m,\n bold: \u001b[33mfalse\u001b[39m,\n required: \u001b[33mfalse\u001b[39m,\n appearsByDefault: \u001b[33mfalse\u001b[39m,\n findEnabled: \u001b[33mtrue\u001b[39m,\n unique: \u001b[33mfalse\u001b[39m,\n doesDataCopy: \u001b[33mfalse\u001b[39m,\n fieldHelp: \u001b[32m''\u001b[39m,\n audited: \u001b[33mfalse\u001b[39m,\n properties: {\n primaryKey: \u001b[33mfalse\u001b[39m,\n foreignKey: \u001b[33mfalse\u001b[39m,\n numLines: \u001b[90mundefined\u001b[39m,\n maxLength: \u001b[90mundefined\u001b[39m,\n appendOnly: \u001b[90mundefined\u001b[39m,\n allowHTML: \u001b[90mundefined\u001b[39m,\n allowMentions: \u001b[90mundefined\u001b[39m,\n sortAsGiven: \u001b[33mtrue\u001b[39m,\n carryChoices: \u001b[33mtrue\u001b[39m,\n allowNewChoices: \u001b[33mtrue\u001b[39m,\n formula: \u001b[32m''\u001b[39m,\n defaultValue: \u001b[32m''\u001b[39m\n },\n permissions: \u001b[90mundefined\u001b[39m\n },\n {\n id: \u001b[33m5\u001b[39m,\n label: \u001b[32m'Last Modified By'\u001b[39m,\n fieldType: \u001b[32m'user'\u001b[39m,\n noWrap: \u001b[33mtrue\u001b[39m,\n bold: \u001b[33mfalse\u001b[39m,\n required: \u001b[33mfalse\u001b[39m,\n appearsByDefault: \u001b[33mfalse\u001b[39m,\n findEnabled: \u001b[33mtrue\u001b[39m,\n unique: \u001b[33mfalse\u001b[39m,\n doesDataCopy: \u001b[33mfalse\u001b[39m,\n fieldHelp: \u001b[32m''\u001b[39m,\n audited: \u001b[33mfalse\u001b[39m,\n properties: {\n primaryKey: \u001b[33mfalse\u001b[39m,\n foreignKey: \u001b[33mfalse\u001b[39m,\n numLines: \u001b[90mundefined\u001b[39m,\n maxLength: \u001b[90mundefined\u001b[39m,\n appendOnly: \u001b[90mundefined\u001b[39m,\n allowHTML: \u001b[90mundefined\u001b[39m,\n allowMentions: \u001b[90mundefined\u001b[39m,\n sortAsGiven: \u001b[33mtrue\u001b[39m,\n carryChoices: \u001b[33mtrue\u001b[39m,\n allowNewChoices: \u001b[33mtrue\u001b[39m,\n formula: \u001b[32m''\u001b[39m,\n defaultValue: \u001b[32m''\u001b[39m\n },\n permissions: \u001b[90mundefined\u001b[39m\n }\n]\n"
175
- },
176
- {
177
- "text": "Proxy called getApp with: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
178
- },
179
- {
180
- "text": "Cache state before fetch for buwai2zpe: [\n [\n \u001b[32m'buwai2zpe'\u001b[39m,\n {\n token: \u001b[32m'VEtU.OV9idXlibTR0aG5fYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfbnpla3l6Y3VldnU3ZW1nNjVubmR0ZW41aHFieHA2N2Y1ZGdjN2ppYjhhdzJ1NmNucmJ3ZWRfaXluNnU5Mg=='\u001b[39m,\n expiresAt: \u001b[33m1741655187022\u001b[39m\n }\n ],\n [\n \u001b[32m'buwai2zws'\u001b[39m,\n {\n token: \u001b[32m'VEtU.OV9idXlibTR1czlfYjlmM3BrX3E0amRfYV9idXdhaTJ6d3NfZHI0dndwaTNlcXV0MmM3ZTNqZzd0cnA2ZGJld3JjNXdkZGIzZDh5Nzc1Zmt6ZHdjbm42cl9peW42dmF1'\u001b[39m,\n expiresAt: \u001b[33m1741655188373\u001b[39m\n }\n ]\n]\n"
181
- },
182
- {
183
- "text": "Reusing cached token for dbid: buwai2zpe VEtU.OV9idXlibTR0aG5fYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfbnpla3l6Y3VldnU3ZW1nNjVubmR0ZW41aHFieHA2N2Y1ZGdjN2ppYjhhdzJ1NmNucmJ3ZWRfaXluNnU5Mg==\n"
184
- },
185
- {
186
- "text": "Invoking getApp with params: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
187
- },
188
- {
189
- "text": "Calling method with args: [\n { appId: \u001b[32m'buwai2zpe'\u001b[39m },\n {\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibTR0aG5fYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfbnpla3l6Y3VldnU3ZW1nNjVubmR0ZW41aHFieHA2N2Y1ZGdjN2ppYjhhdzJ1NmNucmJ3ZWRfaXluNnU5Mg=='\u001b[39m\n }\n }\n]\n"
190
- },
191
- {
192
- "text": "Fetching https://api.quickbase.com/v1/apps/buwai2zpe with init: {\n method: \u001b[32m'GET'\u001b[39m,\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibTR0aG5fYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfbnpla3l6Y3VldnU3ZW1nNjVubmR0ZW41aHFieHA2N2Y1ZGdjN2ppYjhhdzJ1NmNucmJ3ZWRfaXluNnU5Mg=='\u001b[39m\n },\n body: \u001b[90mundefined\u001b[39m,\n credentials: \u001b[32m'include'\u001b[39m\n}\n"
193
- },
194
- {
195
- "text": "Raw response from https://api.quickbase.com/v1/apps/buwai2zpe: {\n status: \u001b[33m200\u001b[39m,\n statusText: \u001b[32m'OK'\u001b[39m,\n body: \u001b[32m'{\"created\":\"2025-02-13T18:22:33Z\",\"dateFormat\":\"MM-DD-YYYY\",\"description\":\"\",\"hasEveryoneOnTheInternet\":false,\"id\":\"buwai2zpe\",\"memoryInfo\":{\"estMemory\":0.0,\"estMemoryInclDependentApps\":0.0},\"name\":\"qb-copy\",\"securityProperties\":{\"allowClone\":false,\"allowExport\":true,\"enableAppTokens\":true,\"hideFromPublic\":false,\"mustBeRealmApproved\":false,\"useIPFilter\":false},\"timeZone\":\"(UTC-08:00) Pacific Time (US & Canada)\",\"updated\":\"2025-03-11T00:50:35Z\"}'\u001b[39m\n}\n"
196
- },
197
- {
198
- "text": "Response from getApp: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
199
- },
200
- {
201
- "text": "Second getApp response: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
202
- }
203
- ],
204
- "stderr": [],
205
- "retry": 0,
206
- "startTime": "2025-03-11T01:01:19.745Z",
207
- "attachments": []
208
- }
209
- ],
210
- "status": "expected"
211
- }
212
- ],
213
- "id": "d9cb2cca5cb03c0bcd89-8f1f64d2351d17551df9",
214
- "file": "qb/auth/cacheSwitching.test.ts",
215
- "line": 64,
216
- "column": 3
217
- }
218
- ]
219
- }
220
- ]
221
- },
222
- {
223
- "title": "qb/auth/fetchTempToken401.test.ts",
224
- "file": "qb/auth/fetchTempToken401.test.ts",
225
- "column": 0,
226
- "line": 0,
227
- "specs": [],
228
- "suites": [
229
- {
230
- "title": "QuickbaseClient Integration - Token Invalidation with Cached Token",
231
- "file": "qb/auth/fetchTempToken401.test.ts",
232
- "line": 57,
233
- "column": 6,
234
- "specs": [
235
- {
236
- "title": "retries with new token when cached token is unexpectedly invalidated",
237
- "ok": true,
238
- "tags": [],
239
- "tests": [
240
- {
241
- "timeout": 600000,
242
- "annotations": [],
243
- "expectedStatus": "passed",
244
- "projectId": "chromium",
245
- "projectName": "chromium",
246
- "results": [
247
- {
248
- "workerIndex": 1,
249
- "parallelIndex": 1,
250
- "status": "passed",
251
- "duration": 17347,
252
- "errors": [],
253
- "stdout": [
254
- {
255
- "text": "Logging in to QuickBase\n"
256
- },
257
- {
258
- "text": "Signed In to QuickBase.\n"
259
- },
260
- {
261
- "text": "Post-login URL after app navigation: https://builderprogram-dbradford6815.quickbase.com/nav/app/buwai2zpe/action/appoverview\n"
262
- },
263
- {
264
- "text": "Pre-fetching initial token...\n"
265
- },
266
- {
267
- "text": "Proxy called getTempTokenDBID with: { dbid: \u001b[32m'buwai2zpe'\u001b[39m }\n"
268
- },
269
- {
270
- "text": "Cache state before fetch for buwai2zpe: []\n"
271
- },
272
- {
273
- "text": "fetchApi called for https://api.quickbase.com/v1/auth/temporary/buwai2zpe, callCount: 1\n"
274
- },
275
- {
276
- "text": "browserFetch called for https://api.quickbase.com/v1/auth/temporary/buwai2zpe, callCount: 1\n"
277
- },
278
- {
279
- "text": "Raw response from https://api.quickbase.com/v1/auth/temporary/buwai2zpe: {\n status: \u001b[33m200\u001b[39m,\n statusText: \u001b[32m''\u001b[39m,\n body: \u001b[32m'{\"temporaryAuthorization\":\"VEtU.OV9idXlibTRzNGhfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfY2Y4YXpkYWR1c2kyOWdjM2k5M2FzaWdlY2F2Y3V2eG1zNmMyM2I2NnVicHJkN3E2Y210emtkel9peW42dTlx\"}'\u001b[39m\n}\n"
280
- },
281
- {
282
- "text": "Captured initial token: VEtU.OV9idXlibTRzNGhfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfY2Y4YXpkYWR1c2kyOWdjM2k5M2FzaWdlY2F2Y3V2eG1zNmMyM2I2NnVicHJkN3E2Y210emtkel9peW42dTlx\n"
283
- },
284
- {
285
- "text": "Fetched and cached new token for dbid: buwai2zpe VEtU.OV9idXlibTRzNGhfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfY2Y4YXpkYWR1c2kyOWdjM2k5M2FzaWdlY2F2Y3V2eG1zNmMyM2I2NnVicHJkN3E2Y210emtkel9peW42dTlx Expires at: 2025-03-11T01:06:26.618Z\n"
286
- },
287
- {
288
- "text": "Initial token pre-fetched and cached: {\n temporaryAuthorization: \u001b[32m'VEtU.OV9idXlibTRzNGhfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfY2Y4YXpkYWR1c2kyOWdjM2k5M2FzaWdlY2F2Y3V2eG1zNmMyM2I2NnVicHJkN3E2Y210emtkel9peW42dTlx'\u001b[39m\n}\n"
289
- },
290
- {
291
- "text": "Proxy called getApp with: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
292
- },
293
- {
294
- "text": "Cache state before fetch for buwai2zpe: [\n [\n \u001b[32m'buwai2zpe'\u001b[39m,\n {\n token: \u001b[32m'VEtU.OV9idXlibTRzNGhfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfY2Y4YXpkYWR1c2kyOWdjM2k5M2FzaWdlY2F2Y3V2eG1zNmMyM2I2NnVicHJkN3E2Y210emtkel9peW42dTlx'\u001b[39m,\n expiresAt: \u001b[33m1741655186618\u001b[39m\n }\n ]\n]\n"
295
- },
296
- {
297
- "text": "Reusing cached token for dbid: buwai2zpe VEtU.OV9idXlibTRzNGhfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfY2Y4YXpkYWR1c2kyOWdjM2k5M2FzaWdlY2F2Y3V2eG1zNmMyM2I2NnVicHJkN3E2Y210emtkel9peW42dTlx\n"
298
- },
299
- {
300
- "text": "Invoking getApp with params: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
301
- },
302
- {
303
- "text": "Calling method with args: [\n { appId: \u001b[32m'buwai2zpe'\u001b[39m },\n {\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibTRzNGhfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfY2Y4YXpkYWR1c2kyOWdjM2k5M2FzaWdlY2F2Y3V2eG1zNmMyM2I2NnVicHJkN3E2Y210emtkel9peW42dTlx'\u001b[39m\n }\n }\n]\n"
304
- },
305
- {
306
- "text": "fetchApi called for https://api.quickbase.com/v1/apps/buwai2zpe, callCount: 2\n"
307
- },
308
- {
309
- "text": "getApp call count: 1\n"
310
- },
311
- {
312
- "text": "Simulating 401 Unauthorized for first getApp call\n"
313
- },
314
- {
315
- "text": "Authorization error for getApp, refreshing token: Response returned an error code\n"
316
- },
317
- {
318
- "text": "fetchApi called for https://api.quickbase.com/v1/auth/temporary/buwai2zpe, callCount: 3\n"
319
- },
320
- {
321
- "text": "browserFetch called for https://api.quickbase.com/v1/auth/temporary/buwai2zpe, callCount: 3\n"
322
- },
323
- {
324
- "text": "Raw response from https://api.quickbase.com/v1/auth/temporary/buwai2zpe: {\n status: \u001b[33m200\u001b[39m,\n statusText: \u001b[32m''\u001b[39m,\n body: \u001b[32m'{\"temporaryAuthorization\":\"VEtU.OV9idXlibTR0YzRfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfZHYyaXNpajRubWM5cnR3Nzk1dGJkc3plaGZidnZraGE4ZGN2ZHNpc2RzYWVhYzV4NWVlOF9peW42dTl6\"}'\u001b[39m\n}\n"
325
- },
326
- {
327
- "text": "Captured retry token: VEtU.OV9idXlibTR0YzRfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfZHYyaXNpajRubWM5cnR3Nzk1dGJkc3plaGZidnZraGE4ZGN2ZHNpc2RzYWVhYzV4NWVlOF9peW42dTl6\n"
328
- },
329
- {
330
- "text": "Fetched and cached new token for dbid: buwai2zpe VEtU.OV9idXlibTR0YzRfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfZHYyaXNpajRubWM5cnR3Nzk1dGJkc3plaGZidnZraGE4ZGN2ZHNpc2RzYWVhYzV4NWVlOF9peW42dTl6 Expires at: 2025-03-11T01:06:26.861Z\n"
331
- },
332
- {
333
- "text": "Retrying getApp with new token\n"
334
- },
335
- {
336
- "text": "Cache state before fetch for buwai2zpe: [\n [\n \u001b[32m'buwai2zpe'\u001b[39m,\n {\n token: \u001b[32m'VEtU.OV9idXlibTR0YzRfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfZHYyaXNpajRubWM5cnR3Nzk1dGJkc3plaGZidnZraGE4ZGN2ZHNpc2RzYWVhYzV4NWVlOF9peW42dTl6'\u001b[39m,\n expiresAt: \u001b[33m1741655186861\u001b[39m\n }\n ]\n]\n"
337
- },
338
- {
339
- "text": "Reusing cached token for dbid: buwai2zpe VEtU.OV9idXlibTR0YzRfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfZHYyaXNpajRubWM5cnR3Nzk1dGJkc3plaGZidnZraGE4ZGN2ZHNpc2RzYWVhYzV4NWVlOF9peW42dTl6\n"
340
- },
341
- {
342
- "text": "Invoking getApp with params: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
343
- },
344
- {
345
- "text": "Calling method with args: [\n { appId: \u001b[32m'buwai2zpe'\u001b[39m },\n {\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibTR0YzRfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfZHYyaXNpajRubWM5cnR3Nzk1dGJkc3plaGZidnZraGE4ZGN2ZHNpc2RzYWVhYzV4NWVlOF9peW42dTl6'\u001b[39m\n }\n }\n]\n"
346
- },
347
- {
348
- "text": "fetchApi called for https://api.quickbase.com/v1/apps/buwai2zpe, callCount: 4\n"
349
- },
350
- {
351
- "text": "getApp call count: 2\n"
352
- },
353
- {
354
- "text": "Fetching https://api.quickbase.com/v1/apps/buwai2zpe with init: {\n method: \u001b[32m'GET'\u001b[39m,\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibTR0YzRfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfZHYyaXNpajRubWM5cnR3Nzk1dGJkc3plaGZidnZraGE4ZGN2ZHNpc2RzYWVhYzV4NWVlOF9peW42dTl6'\u001b[39m\n },\n body: \u001b[90mundefined\u001b[39m,\n credentials: \u001b[32m'include'\u001b[39m\n}\n"
355
- },
356
- {
357
- "text": "Raw response from https://api.quickbase.com/v1/apps/buwai2zpe: {\n status: \u001b[33m200\u001b[39m,\n statusText: \u001b[32m'OK'\u001b[39m,\n body: \u001b[32m'{\"created\":\"2025-02-13T18:22:33Z\",\"dateFormat\":\"MM-DD-YYYY\",\"description\":\"\",\"hasEveryoneOnTheInternet\":false,\"id\":\"buwai2zpe\",\"memoryInfo\":{\"estMemory\":0.0,\"estMemoryInclDependentApps\":0.0},\"name\":\"qb-copy\",\"securityProperties\":{\"allowClone\":false,\"allowExport\":true,\"enableAppTokens\":true,\"hideFromPublic\":false,\"mustBeRealmApproved\":false,\"useIPFilter\":false},\"timeZone\":\"(UTC-08:00) Pacific Time (US & Canada)\",\"updated\":\"2025-03-11T00:50:35Z\"}'\u001b[39m\n}\n"
358
- },
359
- {
360
- "text": "Response from getApp: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
361
- },
362
- {
363
- "text": "App response after token invalidation and retry: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
364
- },
365
- {
366
- "text": "Final callCount: 4, Final getAppCallCount: 2\n"
367
- },
368
- {
369
- "text": "Initial token: VEtU.OV9idXlibTRzNGhfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfY2Y4YXpkYWR1c2kyOWdjM2k5M2FzaWdlY2F2Y3V2eG1zNmMyM2I2NnVicHJkN3E2Y210emtkel9peW42dTlx\n"
370
- },
371
- {
372
- "text": "Retry token: VEtU.OV9idXlibTR0YzRfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfZHYyaXNpajRubWM5cnR3Nzk1dGJkc3plaGZidnZraGE4ZGN2ZHNpc2RzYWVhYzV4NWVlOF9peW42dTl6\n"
373
- }
374
- ],
375
- "stderr": [],
376
- "retry": 0,
377
- "startTime": "2025-03-11T01:01:19.842Z",
378
- "attachments": []
379
- }
380
- ],
381
- "status": "expected"
382
- }
383
- ],
384
- "id": "56648ac255b375940529-df3e4cfe3318a4ab96c9",
385
- "file": "qb/auth/fetchTempToken401.test.ts",
386
- "line": 58,
387
- "column": 3
388
- }
389
- ]
390
- }
391
- ]
392
- },
393
- {
394
- "title": "qb/auth/getAppWithUserToken.test.ts",
395
- "file": "qb/auth/getAppWithUserToken.test.ts",
396
- "column": 0,
397
- "line": 0,
398
- "specs": [],
399
- "suites": [
400
- {
401
- "title": "QuickbaseClient Integration - getApp with User Token",
402
- "file": "qb/auth/getAppWithUserToken.test.ts",
403
- "line": 56,
404
- "column": 6,
405
- "specs": [
406
- {
407
- "title": "uses user token for getApp in browser",
408
- "ok": true,
409
- "tags": [],
410
- "tests": [
411
- {
412
- "timeout": 600000,
413
- "annotations": [],
414
- "expectedStatus": "passed",
415
- "projectId": "chromium",
416
- "projectName": "chromium",
417
- "results": [
418
- {
419
- "workerIndex": 2,
420
- "parallelIndex": 2,
421
- "status": "passed",
422
- "duration": 16692,
423
- "errors": [],
424
- "stdout": [
425
- {
426
- "text": "Logging in to QuickBase\n"
427
- },
428
- {
429
- "text": "Signed In to QuickBase.\n"
430
- },
431
- {
432
- "text": "Post-login URL after app navigation: https://builderprogram-dbradford6815.quickbase.com/nav/app/buwai2zpe/action/appoverview\n"
433
- },
434
- {
435
- "text": "Proxy called getApp with: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
436
- },
437
- {
438
- "text": "Invoking getApp with params: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
439
- },
440
- {
441
- "text": "Calling method with args: [ { appId: \u001b[32m'buwai2zpe'\u001b[39m }, {} ]\n"
442
- },
443
- {
444
- "text": "Fetching https://api.quickbase.com/v1/apps/buwai2zpe with init: {\n method: \u001b[32m'GET'\u001b[39m,\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-USER-TOKEN b9f3pk_q4jd_0_b4qu5eebyvuix3xs57ysd7zn3'\u001b[39m\n },\n body: \u001b[90mundefined\u001b[39m,\n credentials: \u001b[32m'omit'\u001b[39m\n}\n"
445
- },
446
- {
447
- "text": "Raw response from https://api.quickbase.com/v1/apps/buwai2zpe: {\n status: \u001b[33m200\u001b[39m,\n statusText: \u001b[32m''\u001b[39m,\n body: \u001b[32m'{\"created\":\"2025-02-13T18:22:33Z\",\"dateFormat\":\"MM-DD-YYYY\",\"description\":\"\",\"hasEveryoneOnTheInternet\":false,\"id\":\"buwai2zpe\",\"memoryInfo\":{\"estMemory\":0.0,\"estMemoryInclDependentApps\":0.0},\"name\":\"qb-copy\",\"securityProperties\":{\"allowClone\":false,\"allowExport\":true,\"enableAppTokens\":true,\"hideFromPublic\":false,\"mustBeRealmApproved\":false,\"useIPFilter\":false},\"timeZone\":\"(UTC-08:00) Pacific Time (US & Canada)\",\"updated\":\"2025-03-11T00:50:35Z\"}'\u001b[39m\n}\n"
448
- },
449
- {
450
- "text": "Response from getApp: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
451
- },
452
- {
453
- "text": "App response using user token: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
454
- }
455
- ],
456
- "stderr": [],
457
- "retry": 0,
458
- "startTime": "2025-03-11T01:01:19.826Z",
459
- "attachments": []
460
- }
461
- ],
462
- "status": "expected"
463
- }
464
- ],
465
- "id": "95cc4dd43cb1eb804aca-bbbed45ba12381f1d296",
466
- "file": "qb/auth/getAppWithUserToken.test.ts",
467
- "line": 57,
468
- "column": 3
469
- }
470
- ]
471
- }
472
- ]
473
- },
474
- {
475
- "title": "qb/auth/getTempToken.test.ts",
476
- "file": "qb/auth/getTempToken.test.ts",
477
- "column": 0,
478
- "line": 0,
479
- "specs": [],
480
- "suites": [
481
- {
482
- "title": "QuickbaseClient Integration - getApp with Temp Tokens",
483
- "file": "qb/auth/getTempToken.test.ts",
484
- "line": 57,
485
- "column": 6,
486
- "specs": [
487
- {
488
- "title": "uses temp tokens automatically for getApp in browser",
489
- "ok": true,
490
- "tags": [],
491
- "tests": [
492
- {
493
- "timeout": 600000,
494
- "annotations": [],
495
- "expectedStatus": "passed",
496
- "projectId": "chromium",
497
- "projectName": "chromium",
498
- "results": [
499
- {
500
- "workerIndex": 3,
501
- "parallelIndex": 3,
502
- "status": "passed",
503
- "duration": 18007,
504
- "errors": [],
505
- "stdout": [
506
- {
507
- "text": "Logging in to QuickBase\n"
508
- },
509
- {
510
- "text": "Signed In to QuickBase.\n"
511
- },
512
- {
513
- "text": "Post-login URL after app navigation: https://builderprogram-dbradford6815.quickbase.com/nav/app/buwai2zpe/action/appoverview\n"
514
- },
515
- {
516
- "text": "Proxy called getApp with: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
517
- },
518
- {
519
- "text": "Cache state before fetch for buwai2zpe: []\n"
520
- },
521
- {
522
- "text": "Raw response from https://api.quickbase.com/v1/auth/temporary/buwai2zpe: {\n status: \u001b[33m200\u001b[39m,\n statusText: \u001b[32m''\u001b[39m,\n body: \u001b[32m'{\"temporaryAuthorization\":\"VEtU.OV9idXlibTR0eGFfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfYjR6ZWZwd2NlYzRkdnJjNzNkNXFiMzRlenY1Y2U1dzh2c2I5M2treXM1YWdrZmpkcTk2cjQ0X2l5bjZ2YWM=\"}'\u001b[39m\n}\n"
523
- },
524
- {
525
- "text": "Fetched and cached new token for dbid: buwai2zpe VEtU.OV9idXlibTR0eGFfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfYjR6ZWZwd2NlYzRkdnJjNzNkNXFiMzRlenY1Y2U1dzh2c2I5M2treXM1YWdrZmpkcTk2cjQ0X2l5bjZ2YWM= Expires at: 2025-03-11T01:06:27.472Z\n"
526
- },
527
- {
528
- "text": "Invoking getApp with params: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
529
- },
530
- {
531
- "text": "Calling method with args: [\n { appId: \u001b[32m'buwai2zpe'\u001b[39m },\n {\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibTR0eGFfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfYjR6ZWZwd2NlYzRkdnJjNzNkNXFiMzRlenY1Y2U1dzh2c2I5M2treXM1YWdrZmpkcTk2cjQ0X2l5bjZ2YWM='\u001b[39m\n }\n }\n]\n"
532
- },
533
- {
534
- "text": "Fetching https://api.quickbase.com/v1/apps/buwai2zpe with init: {\n method: \u001b[32m'GET'\u001b[39m,\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibTR0eGFfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfYjR6ZWZwd2NlYzRkdnJjNzNkNXFiMzRlenY1Y2U1dzh2c2I5M2treXM1YWdrZmpkcTk2cjQ0X2l5bjZ2YWM='\u001b[39m\n },\n body: \u001b[90mundefined\u001b[39m,\n credentials: \u001b[32m'include'\u001b[39m\n}\n"
535
- },
536
- {
537
- "text": "Raw response from https://api.quickbase.com/v1/apps/buwai2zpe: {\n status: \u001b[33m200\u001b[39m,\n statusText: \u001b[32m'OK'\u001b[39m,\n body: \u001b[32m'{\"created\":\"2025-02-13T18:22:33Z\",\"dateFormat\":\"MM-DD-YYYY\",\"description\":\"\",\"hasEveryoneOnTheInternet\":false,\"id\":\"buwai2zpe\",\"memoryInfo\":{\"estMemory\":0.0,\"estMemoryInclDependentApps\":0.0},\"name\":\"qb-copy\",\"securityProperties\":{\"allowClone\":false,\"allowExport\":true,\"enableAppTokens\":true,\"hideFromPublic\":false,\"mustBeRealmApproved\":false,\"useIPFilter\":false},\"timeZone\":\"(UTC-08:00) Pacific Time (US & Canada)\",\"updated\":\"2025-03-11T00:50:35Z\"}'\u001b[39m\n}\n"
538
- },
539
- {
540
- "text": "Response from getApp: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
541
- },
542
- {
543
- "text": "App response using auto-fetched temp token: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
544
- }
545
- ],
546
- "stderr": [],
547
- "retry": 0,
548
- "startTime": "2025-03-11T01:01:19.755Z",
549
- "attachments": []
550
- }
551
- ],
552
- "status": "expected"
553
- }
554
- ],
555
- "id": "a701d3a6657df231384c-1f340fa9d9997340cef2",
556
- "file": "qb/auth/getTempToken.test.ts",
557
- "line": 58,
558
- "column": 3
559
- }
560
- ]
561
- }
562
- ]
563
- },
564
- {
565
- "title": "qb/auth/tokenPrefetch.test.ts",
566
- "file": "qb/auth/tokenPrefetch.test.ts",
567
- "column": 0,
568
- "line": 0,
569
- "specs": [],
570
- "suites": [
571
- {
572
- "title": "QuickbaseClient Integration - Token Pre-Fetch and Cache Reuse",
573
- "file": "qb/auth/tokenPrefetch.test.ts",
574
- "line": 57,
575
- "column": 6,
576
- "specs": [
577
- {
578
- "title": "pre-fetches token and reuses it for subsequent API calls",
579
- "ok": true,
580
- "tags": [],
581
- "tests": [
582
- {
583
- "timeout": 600000,
584
- "annotations": [],
585
- "expectedStatus": "passed",
586
- "projectId": "chromium",
587
- "projectName": "chromium",
588
- "results": [
589
- {
590
- "workerIndex": 2,
591
- "parallelIndex": 2,
592
- "status": "passed",
593
- "duration": 12122,
594
- "errors": [],
595
- "stdout": [
596
- {
597
- "text": "Logging in to QuickBase\n"
598
- },
599
- {
600
- "text": "Signed In to QuickBase.\n"
601
- },
602
- {
603
- "text": "Post-login URL after app navigation: https://builderprogram-dbradford6815.quickbase.com/nav/app/buwai2zpe/action/appoverview\n"
604
- },
605
- {
606
- "text": "Pre-fetching token...\n"
607
- },
608
- {
609
- "text": "Proxy called getTempTokenDBID with: { dbid: \u001b[32m'buwai2zpe'\u001b[39m }\n"
610
- },
611
- {
612
- "text": "Cache state before fetch for buwai2zpe: []\n"
613
- },
614
- {
615
- "text": "fetchApi called for https://api.quickbase.com/v1/auth/temporary/buwai2zpe, callCount: 1\n"
616
- },
617
- {
618
- "text": "browserFetch called for https://api.quickbase.com/v1/auth/temporary/buwai2zpe, callCount: 1\n"
619
- },
620
- {
621
- "text": "Raw response from https://api.quickbase.com/v1/auth/temporary/buwai2zpe: {\n status: \u001b[33m200\u001b[39m,\n statusText: \u001b[32m''\u001b[39m,\n body: \u001b[32m'{\"temporaryAuthorization\":\"VEtU.OV9idXlibTQ2Z3hfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfdnhxMms2a3lrbnhwYnFleXZ4NmRtMjV0ZGhrNzlnbmIzYWhteXliODV2ajNqZGt5ZGlxdF9peW42dmZq\"}'\u001b[39m\n}\n"
622
- },
623
- {
624
- "text": "Captured pre-fetched token: VEtU.OV9idXlibTQ2Z3hfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfdnhxMms2a3lrbnhwYnFleXZ4NmRtMjV0ZGhrNzlnbmIzYWhteXliODV2ajNqZGt5ZGlxdF9peW42dmZq\n"
625
- },
626
- {
627
- "text": "Fetched and cached new token for dbid: buwai2zpe VEtU.OV9idXlibTQ2Z3hfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfdnhxMms2a3lrbnhwYnFleXZ4NmRtMjV0ZGhrNzlnbmIzYWhteXliODV2ajNqZGt5ZGlxdF9peW42dmZq Expires at: 2025-03-11T01:06:38.352Z\n"
628
- },
629
- {
630
- "text": "Pre-fetched token result: {\n temporaryAuthorization: \u001b[32m'VEtU.OV9idXlibTQ2Z3hfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfdnhxMms2a3lrbnhwYnFleXZ4NmRtMjV0ZGhrNzlnbmIzYWhteXliODV2ajNqZGt5ZGlxdF9peW42dmZq'\u001b[39m\n}\n"
631
- },
632
- {
633
- "text": "Calling getApp with pre-fetched token...\n"
634
- },
635
- {
636
- "text": "Proxy called getApp with: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
637
- },
638
- {
639
- "text": "Cache state before fetch for buwai2zpe: [\n [\n \u001b[32m'buwai2zpe'\u001b[39m,\n {\n token: \u001b[32m'VEtU.OV9idXlibTQ2Z3hfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfdnhxMms2a3lrbnhwYnFleXZ4NmRtMjV0ZGhrNzlnbmIzYWhteXliODV2ajNqZGt5ZGlxdF9peW42dmZq'\u001b[39m,\n expiresAt: \u001b[33m1741655198352\u001b[39m\n }\n ]\n]\n"
640
- },
641
- {
642
- "text": "Reusing cached token for dbid: buwai2zpe VEtU.OV9idXlibTQ2Z3hfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfdnhxMms2a3lrbnhwYnFleXZ4NmRtMjV0ZGhrNzlnbmIzYWhteXliODV2ajNqZGt5ZGlxdF9peW42dmZq\n"
643
- },
644
- {
645
- "text": "Invoking getApp with params: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
646
- },
647
- {
648
- "text": "Calling method with args: [\n { appId: \u001b[32m'buwai2zpe'\u001b[39m },\n {\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibTQ2Z3hfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfdnhxMms2a3lrbnhwYnFleXZ4NmRtMjV0ZGhrNzlnbmIzYWhteXliODV2ajNqZGt5ZGlxdF9peW42dmZq'\u001b[39m\n }\n }\n]\n"
649
- },
650
- {
651
- "text": "fetchApi called for https://api.quickbase.com/v1/apps/buwai2zpe, callCount: 2\n"
652
- },
653
- {
654
- "text": "Fetching https://api.quickbase.com/v1/apps/buwai2zpe with init: {\n method: \u001b[32m'GET'\u001b[39m,\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibTQ2Z3hfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfdnhxMms2a3lrbnhwYnFleXZ4NmRtMjV0ZGhrNzlnbmIzYWhteXliODV2ajNqZGt5ZGlxdF9peW42dmZq'\u001b[39m\n },\n body: \u001b[90mundefined\u001b[39m,\n credentials: \u001b[32m'include'\u001b[39m\n}\n"
655
- },
656
- {
657
- "text": "Raw response from https://api.quickbase.com/v1/apps/buwai2zpe: {\n status: \u001b[33m200\u001b[39m,\n statusText: \u001b[32m'OK'\u001b[39m,\n body: \u001b[32m'{\"created\":\"2025-02-13T18:22:33Z\",\"dateFormat\":\"MM-DD-YYYY\",\"description\":\"\",\"hasEveryoneOnTheInternet\":false,\"id\":\"buwai2zpe\",\"memoryInfo\":{\"estMemory\":0.0,\"estMemoryInclDependentApps\":0.0},\"name\":\"qb-copy\",\"securityProperties\":{\"allowClone\":false,\"allowExport\":true,\"enableAppTokens\":true,\"hideFromPublic\":false,\"mustBeRealmApproved\":false,\"useIPFilter\":false},\"timeZone\":\"(UTC-08:00) Pacific Time (US & Canada)\",\"updated\":\"2025-03-11T00:50:35Z\"}'\u001b[39m\n}\n"
658
- },
659
- {
660
- "text": "Response from getApp: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
661
- },
662
- {
663
- "text": "App response: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
664
- },
665
- {
666
- "text": "Final callCount: 2\n"
667
- },
668
- {
669
- "text": "Pre-fetched token: VEtU.OV9idXlibTQ2Z3hfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfdnhxMms2a3lrbnhwYnFleXZ4NmRtMjV0ZGhrNzlnbmIzYWhteXliODV2ajNqZGt5ZGlxdF9peW42dmZq\n"
670
- }
671
- ],
672
- "stderr": [],
673
- "retry": 0,
674
- "startTime": "2025-03-11T01:01:36.642Z",
675
- "attachments": []
676
- }
677
- ],
678
- "status": "expected"
679
- }
680
- ],
681
- "id": "084dbd51f68a2bc2cff5-9ce54ae93a5d01e64c35",
682
- "file": "qb/auth/tokenPrefetch.test.ts",
683
- "line": 58,
684
- "column": 3
685
- }
686
- ]
687
- }
688
- ]
689
- },
690
- {
691
- "title": "qb/auth/tokenRenewal.test.ts",
692
- "file": "qb/auth/tokenRenewal.test.ts",
693
- "column": 0,
694
- "line": 0,
695
- "specs": [],
696
- "suites": [
697
- {
698
- "title": "QuickbaseClient Integration - Temp Token Renewal",
699
- "file": "qb/auth/tokenRenewal.test.ts",
700
- "line": 30,
701
- "column": 6,
702
- "specs": [
703
- {
704
- "title": "renews temp token after 5 minutes with getApp → wait → getApp sequence",
705
- "ok": true,
706
- "tags": [],
707
- "tests": [
708
- {
709
- "timeout": 600000,
710
- "annotations": [],
711
- "expectedStatus": "passed",
712
- "projectId": "chromium",
713
- "projectName": "chromium",
714
- "results": [
715
- {
716
- "workerIndex": 1,
717
- "parallelIndex": 1,
718
- "status": "passed",
719
- "duration": 318378,
720
- "errors": [],
721
- "stdout": [
722
- {
723
- "text": "Logging in to QuickBase\n"
724
- },
725
- {
726
- "text": "Signed In to QuickBase.\n"
727
- },
728
- {
729
- "text": "Navigated to app URL: https://builderprogram-dbradford6815.quickbase.com/nav/app/buwai2zpe/action/appoverview\n"
730
- },
731
- {
732
- "text": "Checking session state before getApp...\n"
733
- },
734
- {
735
- "text": "Session cookie present: \u001b[33mtrue\u001b[39m Cookies: [\n {\n name: \u001b[32m'browserCharset'\u001b[39m,\n value: \u001b[32m'UTF-8'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/nav/app/buwai2zpe/action'\u001b[39m,\n expires: \u001b[33m1742259706\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'UUID'\u001b[39m,\n value: \u001b[32m'e7a7b77d-2a5e-4ce7-8e7f-e6ac2ca29135'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/nav/app/buwai2zpe/action'\u001b[39m,\n expires: \u001b[33m1744246906\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'browserCharset'\u001b[39m,\n value: \u001b[32m'UTF-8'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/nav/main/action'\u001b[39m,\n expires: \u001b[33m1742259699\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'UUID'\u001b[39m,\n value: \u001b[32m'f6d6e2d8-6154-4a9f-9546-bbc2d8b696b3'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/nav/main/action'\u001b[39m,\n expires: \u001b[33m1744246899\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'commonVars'\u001b[39m,\n value: \u001b[32m'~qlb=v2~'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/db/'\u001b[39m,\n expires: \u001b[33m1750294906.198214\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'browserCharset'\u001b[39m,\n value: \u001b[32m'UTF-8'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/db'\u001b[39m,\n expires: \u001b[33m1742259697\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'UUID'\u001b[39m,\n value: \u001b[32m'68939273-053e-4607-9568-c49ce1fa1b13'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/db'\u001b[39m,\n expires: \u001b[33m1744246897\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'ptest'\u001b[39m,\n value: \u001b[32m'1741654897498'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1776214897.51919\u001b[39m,\n httpOnly: \u001b[33mtrue\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'stest'\u001b[39m,\n value: \u001b[32m'1741654897498'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mtrue\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'shouldInitializeMetrics'\u001b[39m,\n value: \u001b[32m'true'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'cf_clearance'\u001b[39m,\n value: \u001b[32m'69wK1ypdceFGBLg.N.3BCZn52vFaUjegS2DcSeP.cFk-1741654898-1.2.1.1-UmIzyCbYgSsDmE7_c9K1uVTan2vlwL4DYz0Q3gByJ64veXl7HyD.T8aOExQWMnF6etWI9p7XIUwqVlbQUdmhBFUPptQJPFrSTkAiQoh2qroHH4stIUd3HFgnOx0O4X6i6Zpu.wsEEZWu33T_hHZMcPz8UNn4kY8s_7k7rOeApIkXDvt4hhGhZ.IUJ1acxliWbIp2JMbLLm8CNczFNf4pvjpu8BIei_rZ55nFvgAUgAG21Xi3e4KCO0S.tFQaJUiuetuX1GEjz0Iv0qKjFxFTt04nLX5A5Xn2JzwXdjFKmaCKjqgyF6YRbURNzSBwE03ns9uOjURw.FfHbUolaxXBaW13Q6.Fa2wr1CAsTq2Tf_Q'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1773190898.143259\u001b[39m,\n httpOnly: \u001b[33mtrue\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'None'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_visitorId.09267810-0233-4b58-65b5-6f5f6145f867'\u001b[39m,\n value: \u001b[32m''\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_accountId.3719929843'\u001b[39m,\n value: \u001b[32m'822137'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1750294907\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_meta.09267810-0233-4b58-65b5-6f5f6145f867'\u001b[39m,\n value: \u001b[32m''\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_oldVisitorId.09267810-0233-4b58-65b5-6f5f6145f867'\u001b[39m,\n value: \u001b[32m''\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'TICKET_builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n value: \u001b[32m'9_buycwz3h4_b9f3pk_q4jd_a_-b_d2bp7fyc9tpkxadi29mrmcpnz4j2ceerdkc89gkencex7qgxdqmj6fm_iyn6vay'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mtrue\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'TICKET'\u001b[39m,\n value: \u001b[32m'9_buycwz3h4_b9f3pk_q4jd_a_-b_d2bp7fyc9tpkxadi29mrmcpnz4j2ceerdkc89gkencex7qgxdqmj6fm_iyn6vay'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mtrue\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'lrealm'\u001b[39m,\n value: \u001b[32m'q4jd'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1744246898.456752\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_guides_blocked.09267810-0233-4b58-65b5-6f5f6145f867'\u001b[39m,\n value: \u001b[32m'0'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1741669298\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'luid'\u001b[39m,\n value: \u001b[32m'66250154.nvgc'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1776214898.580236\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'confmsg'\u001b[39m,\n value: \u001b[32m''\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mtrue\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_visitorId.3719929843'\u001b[39m,\n value: \u001b[32m'66250154%3Aquickbase.com'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1750294907\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_oldVisitorId.3719929843'\u001b[39m,\n value: \u001b[32m'_PENDO_T_jaeO4S57Qu1'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1750294900\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_feedback_notification_count.09267810-0233-4b58-65b5-6f5f6145f867'\u001b[39m,\n value: \u001b[32m'0'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1750294907\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'responsiveWindowSizeObjectCookie'\u001b[39m,\n value: \u001b[32m'{%22small%22:false%2C%22xSmall%22:false%2C%22xxSmall%22:false}'\u001b[39m,\n domain: \u001b[32m'.builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1741658506\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mfalse\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_lastStepAdvanced.3719929843'\u001b[39m,\n value: \u001b[32m'%5B%7B%22tabId%22%3A%22lljKbYdBlpAcwfmc%22%2C%22guideId%22%3A%22IVthd3ywe-KeAjfWu8DLGO1ym58%22%2C%22guideStepId%22%3A%22NLy5E8v8VkVnoiE5zr0AUuNbmh0%22%2C%22time%22%3A1741654901398%2C%22state%22%3A%22active%22%2C%22seenReason%22%3A%22auto%22%2C%22visitorId%22%3A%2266250154%3Aquickbase.com%22%7D%5D'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1741654911\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'sbIID'\u001b[39m,\n value: \u001b[32m'1074491d-8d09-903b-b107-ae71b12bc27c'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mtrue\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo___sg__.09267810-0233-4b58-65b5-6f5f6145f867'\u001b[39m,\n value: \u001b[32m'%7B%22visitormetadata%22%3A%7B%22agent__qbancestorappid%22%3A%22none%22%2C%22agent__qbcurrentappid%22%3A%22buwai2zpe%22%2C%22agent__qbiscurrentappadmin%22%3Atrue%2C%22agent__qbisintrial%22%3Afalse%7D%7D'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1750294907\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_feedback_ping_sent.09267810-0233-4b58-65b5-6f5f6145f867'\u001b[39m,\n value: \u001b[32m'%7B%22jwt%22%3A%22eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50Ijp7ImlkIjoiODIyMTM3In0sIm5vbmNlIjoiNDM0YzY1NjAzYTVhYzZjMzE4ZmM5NjI0NDVkOGI0ODMiLCJ2aXNpdG9yIjp7ImVtYWlsIjoiZHJld2JyYWRmb3JkeHl6QGdtYWlsLmNvbSIsImZ1bGxfbmFtZSI6IkRyZXcgQnJhZGZvcmQiLCJpZCI6IjY2MjUwMTU0OnF1aWNrYmFzZS5jb20iLCJxYkFuY2VzdG9yQXBwSWQiOiJub25lIiwicWJDdXJyZW50QXBwSWQiOiJidXdhaTJ6cGUiLCJxYkhhc0V2ZXJIYWRBcHBBZG1pbiI6dHJ1ZSwicWJIYXNQaXBlbGluZXNBY2Nlc3MiOnRydWUsInFiSXNDdXJyZW50QXBwQWRtaW4iOnRydWUsInFiSXNJblRyaWFsIjpmYWxzZSwicWJSZWFsbU5hbWUiOiJidWlsZGVycHJvZ3JhbS1kYnJhZGZvcmQ2ODE1IiwicWJSb290RG9tYWluIjoicXVpY2tiYXNlLmNvbSIsInFiVXNlcklkIjo2NjI1MDE1NH19.27jABNIwM_AiIF-dOloJzD1GtThI_ipuZyzYF1I2MFo%22%2C%22signingKeyName%22%3A%22quic-quic-Va3sV%22%2C%22vendor%22%3A%7B%22id%22%3A%223ea4fa5d-2739-4262-ab84-252179156573%22%7D%2C%22allowed_products%22%3A%5B%7B%22id%22%3A%223c9d7e83-da43-482e-a58c-14265037ecd0%22%7D%5D%7D'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1741658507\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_meta.3719929843'\u001b[39m,\n value: \u001b[32m'3980026981'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1750294907\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n }\n]\n"
736
- },
737
- {
738
- "text": "Cookies after delay: [\n {\n name: \u001b[32m'browserCharset'\u001b[39m,\n value: \u001b[32m'UTF-8'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/nav/app/buwai2zpe/action'\u001b[39m,\n expires: \u001b[33m1742259706\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'UUID'\u001b[39m,\n value: \u001b[32m'e7a7b77d-2a5e-4ce7-8e7f-e6ac2ca29135'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/nav/app/buwai2zpe/action'\u001b[39m,\n expires: \u001b[33m1744246906\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'browserCharset'\u001b[39m,\n value: \u001b[32m'UTF-8'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/nav/main/action'\u001b[39m,\n expires: \u001b[33m1742259699\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'UUID'\u001b[39m,\n value: \u001b[32m'f6d6e2d8-6154-4a9f-9546-bbc2d8b696b3'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/nav/main/action'\u001b[39m,\n expires: \u001b[33m1744246899\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'commonVars'\u001b[39m,\n value: \u001b[32m'~qlb=v2~'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/db/'\u001b[39m,\n expires: \u001b[33m1750294906.198214\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'browserCharset'\u001b[39m,\n value: \u001b[32m'UTF-8'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/db'\u001b[39m,\n expires: \u001b[33m1742259697\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'UUID'\u001b[39m,\n value: \u001b[32m'68939273-053e-4607-9568-c49ce1fa1b13'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/db'\u001b[39m,\n expires: \u001b[33m1744246897\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'ptest'\u001b[39m,\n value: \u001b[32m'1741654897498'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1776214897.51919\u001b[39m,\n httpOnly: \u001b[33mtrue\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'stest'\u001b[39m,\n value: \u001b[32m'1741654897498'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mtrue\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'shouldInitializeMetrics'\u001b[39m,\n value: \u001b[32m'true'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'cf_clearance'\u001b[39m,\n value: \u001b[32m'69wK1ypdceFGBLg.N.3BCZn52vFaUjegS2DcSeP.cFk-1741654898-1.2.1.1-UmIzyCbYgSsDmE7_c9K1uVTan2vlwL4DYz0Q3gByJ64veXl7HyD.T8aOExQWMnF6etWI9p7XIUwqVlbQUdmhBFUPptQJPFrSTkAiQoh2qroHH4stIUd3HFgnOx0O4X6i6Zpu.wsEEZWu33T_hHZMcPz8UNn4kY8s_7k7rOeApIkXDvt4hhGhZ.IUJ1acxliWbIp2JMbLLm8CNczFNf4pvjpu8BIei_rZ55nFvgAUgAG21Xi3e4KCO0S.tFQaJUiuetuX1GEjz0Iv0qKjFxFTt04nLX5A5Xn2JzwXdjFKmaCKjqgyF6YRbURNzSBwE03ns9uOjURw.FfHbUolaxXBaW13Q6.Fa2wr1CAsTq2Tf_Q'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1773190898.143259\u001b[39m,\n httpOnly: \u001b[33mtrue\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'None'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_visitorId.09267810-0233-4b58-65b5-6f5f6145f867'\u001b[39m,\n value: \u001b[32m''\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_accountId.3719929843'\u001b[39m,\n value: \u001b[32m'822137'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1750294907\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_meta.09267810-0233-4b58-65b5-6f5f6145f867'\u001b[39m,\n value: \u001b[32m''\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_oldVisitorId.09267810-0233-4b58-65b5-6f5f6145f867'\u001b[39m,\n value: \u001b[32m''\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'TICKET_builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n value: \u001b[32m'9_buycwz3h4_b9f3pk_q4jd_a_-b_d2bp7fyc9tpkxadi29mrmcpnz4j2ceerdkc89gkencex7qgxdqmj6fm_iyn6vay'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mtrue\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'TICKET'\u001b[39m,\n value: \u001b[32m'9_buycwz3h4_b9f3pk_q4jd_a_-b_d2bp7fyc9tpkxadi29mrmcpnz4j2ceerdkc89gkencex7qgxdqmj6fm_iyn6vay'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mtrue\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'lrealm'\u001b[39m,\n value: \u001b[32m'q4jd'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1744246898.456752\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_guides_blocked.09267810-0233-4b58-65b5-6f5f6145f867'\u001b[39m,\n value: \u001b[32m'0'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1741669298\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'luid'\u001b[39m,\n value: \u001b[32m'66250154.nvgc'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1776214898.580236\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'confmsg'\u001b[39m,\n value: \u001b[32m''\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mtrue\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_visitorId.3719929843'\u001b[39m,\n value: \u001b[32m'66250154%3Aquickbase.com'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1750294907\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_oldVisitorId.3719929843'\u001b[39m,\n value: \u001b[32m'_PENDO_T_jaeO4S57Qu1'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1750294900\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_feedback_notification_count.09267810-0233-4b58-65b5-6f5f6145f867'\u001b[39m,\n value: \u001b[32m'0'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1750294907\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'responsiveWindowSizeObjectCookie'\u001b[39m,\n value: \u001b[32m'{%22small%22:false%2C%22xSmall%22:false%2C%22xxSmall%22:false}'\u001b[39m,\n domain: \u001b[32m'.builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1741658506\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mfalse\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'sbIID'\u001b[39m,\n value: \u001b[32m'1074491d-8d09-903b-b107-ae71b12bc27c'\u001b[39m,\n domain: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m-1\u001b[39m,\n httpOnly: \u001b[33mtrue\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Lax'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo___sg__.09267810-0233-4b58-65b5-6f5f6145f867'\u001b[39m,\n value: \u001b[32m'%7B%22visitormetadata%22%3A%7B%22agent__qbancestorappid%22%3A%22none%22%2C%22agent__qbcurrentappid%22%3A%22buwai2zpe%22%2C%22agent__qbiscurrentappadmin%22%3Atrue%2C%22agent__qbisintrial%22%3Afalse%7D%7D'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1750294907\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_feedback_ping_sent.09267810-0233-4b58-65b5-6f5f6145f867'\u001b[39m,\n value: \u001b[32m'%7B%22jwt%22%3A%22eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50Ijp7ImlkIjoiODIyMTM3In0sIm5vbmNlIjoiNDM0YzY1NjAzYTVhYzZjMzE4ZmM5NjI0NDVkOGI0ODMiLCJ2aXNpdG9yIjp7ImVtYWlsIjoiZHJld2JyYWRmb3JkeHl6QGdtYWlsLmNvbSIsImZ1bGxfbmFtZSI6IkRyZXcgQnJhZGZvcmQiLCJpZCI6IjY2MjUwMTU0OnF1aWNrYmFzZS5jb20iLCJxYkFuY2VzdG9yQXBwSWQiOiJub25lIiwicWJDdXJyZW50QXBwSWQiOiJidXdhaTJ6cGUiLCJxYkhhc0V2ZXJIYWRBcHBBZG1pbiI6dHJ1ZSwicWJIYXNQaXBlbGluZXNBY2Nlc3MiOnRydWUsInFiSXNDdXJyZW50QXBwQWRtaW4iOnRydWUsInFiSXNJblRyaWFsIjpmYWxzZSwicWJSZWFsbU5hbWUiOiJidWlsZGVycHJvZ3JhbS1kYnJhZGZvcmQ2ODE1IiwicWJSb290RG9tYWluIjoicXVpY2tiYXNlLmNvbSIsInFiVXNlcklkIjo2NjI1MDE1NH19.27jABNIwM_AiIF-dOloJzD1GtThI_ipuZyzYF1I2MFo%22%2C%22signingKeyName%22%3A%22quic-quic-Va3sV%22%2C%22vendor%22%3A%7B%22id%22%3A%223ea4fa5d-2739-4262-ab84-252179156573%22%7D%2C%22allowed_products%22%3A%5B%7B%22id%22%3A%223c9d7e83-da43-482e-a58c-14265037ecd0%22%7D%5D%7D'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1741658507\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n },\n {\n name: \u001b[32m'_pendo_meta.3719929843'\u001b[39m,\n value: \u001b[32m'3980026981'\u001b[39m,\n domain: \u001b[32m'.quickbase.com'\u001b[39m,\n path: \u001b[32m'/'\u001b[39m,\n expires: \u001b[33m1750294907\u001b[39m,\n httpOnly: \u001b[33mfalse\u001b[39m,\n secure: \u001b[33mtrue\u001b[39m,\n sameSite: \u001b[32m'Strict'\u001b[39m\n }\n]\n"
739
- },
740
- {
741
- "text": "Proxy called getApp with: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
742
- },
743
- {
744
- "text": "Cache state before fetch for buwai2zpe: []\n"
745
- },
746
- {
747
- "text": "Response from: https://api.quickbase.com/v1/auth/temporary/buwai2zpe status: \u001b[33m200\u001b[39m body: {\"temporaryAuthorization\":\"VEtU.OV9idXlibTVicWhfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfYjdwYTMyeGMzdnN6M2RiMmZ1NWFkZWZ2YzRhZG5iYXM2ZGN2aDRud2NiYWFtd2F0NnZ6amR5X2l5bjZ2aXE=\"}\n"
748
- },
749
- {
750
- "text": "Fetched and cached new token for dbid: buwai2zpe VEtU.OV9idXlibTVicWhfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfYjdwYTMyeGMzdnN6M2RiMmZ1NWFkZWZ2YzRhZG5iYXM2ZGN2aDRud2NiYWFtd2F0NnZ6amR5X2l5bjZ2aXE= Expires at: 2025-03-11T01:06:43.659Z\n"
751
- },
752
- {
753
- "text": "Invoking getApp with params: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
754
- },
755
- {
756
- "text": "Calling method with args: [\n { appId: \u001b[32m'buwai2zpe'\u001b[39m },\n {\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibTVicWhfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfYjdwYTMyeGMzdnN6M2RiMmZ1NWFkZWZ2YzRhZG5iYXM2ZGN2aDRud2NiYWFtd2F0NnZ6amR5X2l5bjZ2aXE='\u001b[39m\n }\n }\n]\n"
757
- },
758
- {
759
- "text": "Response from: https://api.quickbase.com/v1/apps/buwai2zpe status: \u001b[33m200\u001b[39m body: {\"created\":\"2025-02-13T18:22:33Z\",\"dateFormat\":\"MM-DD-YYYY\",\"description\":\"\",\"hasEveryoneOnTheInternet\":false,\"id\":\"buwai2zpe\",\"memoryInfo\":{\"estMemory\":0.0,\"estMemoryInclDependentApps\":0.0},\"name\":\"qb-copy\",\"securityProperties\":{\"allowClone\":false,\"allowExport\":true,\"enableAppTokens\":true,\"hideFromPublic\":false,\"mustBeRealmApproved\":false,\"useIPFilter\":false},\"timeZone\":\"(UTC-08:00) Pacific Time (US & Canada)\",\"updated\":\"2025-03-11T00:50:35Z\"}\n"
760
- },
761
- {
762
- "text": "Response from getApp: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
763
- },
764
- {
765
- "text": "First getApp response: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
766
- },
767
- {
768
- "text": "Waiting 5 minutes to test token expiration...\n"
769
- },
770
- {
771
- "text": "Refreshed page after 5 minutes, URL: https://builderprogram-dbradford6815.quickbase.com/nav/app/buwai2zpe/action/appoverview\n"
772
- },
773
- {
774
- "text": "Proxy called getApp with: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
775
- },
776
- {
777
- "text": "Cache state before fetch for buwai2zpe: [\n [\n \u001b[32m'buwai2zpe'\u001b[39m,\n {\n token: \u001b[32m'VEtU.OV9idXlibTVicWhfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfYjdwYTMyeGMzdnN6M2RiMmZ1NWFkZWZ2YzRhZG5iYXM2ZGN2aDRud2NiYWFtd2F0NnZ6amR5X2l5bjZ2aXE='\u001b[39m,\n expiresAt: \u001b[33m1741655203659\u001b[39m\n }\n ]\n]\n"
778
- },
779
- {
780
- "text": "Response from: https://api.quickbase.com/v1/auth/temporary/buwai2zpe status: \u001b[33m200\u001b[39m body: {\"temporaryAuthorization\":\"VEtU.OV9idXlibmVpZWZfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfY2VoODYzaWRqcmoyNmZiNjViNTJjY2ZuYWF4Y2Q2a2ZrZHBjbTc4ZmRmaXh6ajdqYzR3ZTN3aV9peW42Mngz\"}\n"
781
- },
782
- {
783
- "text": "Fetched and cached new token for dbid: buwai2zpe VEtU.OV9idXlibmVpZWZfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfY2VoODYzaWRqcmoyNmZiNjViNTJjY2ZuYWF4Y2Q2a2ZrZHBjbTc4ZmRmaXh6ajdqYzR3ZTN3aV9peW42Mngz Expires at: 2025-03-11T01:11:45.359Z\n"
784
- },
785
- {
786
- "text": "Invoking getApp with params: { appId: \u001b[32m'buwai2zpe'\u001b[39m }\n"
787
- },
788
- {
789
- "text": "Calling method with args: [\n { appId: \u001b[32m'buwai2zpe'\u001b[39m },\n {\n headers: {\n \u001b[32m'QB-Realm-Hostname'\u001b[39m: \u001b[32m'builderprogram-dbradford6815.quickbase.com'\u001b[39m,\n \u001b[32m'Content-Type'\u001b[39m: \u001b[32m'application/json'\u001b[39m,\n Authorization: \u001b[32m'QB-TEMP-TOKEN VEtU.OV9idXlibmVpZWZfYjlmM3BrX3E0amRfYV9idXdhaTJ6cGVfY2VoODYzaWRqcmoyNmZiNjViNTJjY2ZuYWF4Y2Q2a2ZrZHBjbTc4ZmRmaXh6ajdqYzR3ZTN3aV9peW42Mngz'\u001b[39m\n }\n }\n]\n"
790
- },
791
- {
792
- "text": "Response from: https://api.quickbase.com/v1/apps/buwai2zpe status: \u001b[33m200\u001b[39m body: {\"created\":\"2025-02-13T18:22:33Z\",\"dateFormat\":\"MM-DD-YYYY\",\"description\":\"\",\"hasEveryoneOnTheInternet\":false,\"id\":\"buwai2zpe\",\"memoryInfo\":{\"estMemory\":0.0,\"estMemoryInclDependentApps\":0.0},\"name\":\"qb-copy\",\"securityProperties\":{\"allowClone\":false,\"allowExport\":true,\"enableAppTokens\":true,\"hideFromPublic\":false,\"mustBeRealmApproved\":false,\"useIPFilter\":false},\"timeZone\":\"(UTC-08:00) Pacific Time (US & Canada)\",\"updated\":\"2025-03-11T00:50:35Z\"}\n"
793
- },
794
- {
795
- "text": "Response from getApp: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
796
- },
797
- {
798
- "text": "Second getApp response: {\n id: \u001b[32m'buwai2zpe'\u001b[39m,\n name: \u001b[32m'qb-copy'\u001b[39m,\n created: \u001b[35m2025-02-13T18:22:33.000Z\u001b[39m,\n updated: \u001b[35m2025-03-11T00:50:35.000Z\u001b[39m,\n description: \u001b[32m''\u001b[39m,\n timeZone: \u001b[32m'(UTC-08:00) Pacific Time (US & Canada)'\u001b[39m,\n dateFormat: \u001b[32m'MM-DD-YYYY'\u001b[39m,\n hasEveryoneOnTheInternet: \u001b[33mfalse\u001b[39m,\n memoryInfo: { estMemory: \u001b[33m0\u001b[39m, estMemoryInclDependentApps: \u001b[33m0\u001b[39m },\n securityProperties: {\n allowClone: \u001b[33mfalse\u001b[39m,\n allowExport: \u001b[33mtrue\u001b[39m,\n enableAppTokens: \u001b[33mtrue\u001b[39m,\n hideFromPublic: \u001b[33mfalse\u001b[39m,\n mustBeRealmApproved: \u001b[33mfalse\u001b[39m,\n useIPFilter: \u001b[33mfalse\u001b[39m\n }\n}\n"
799
- }
800
- ],
801
- "stderr": [],
802
- "retry": 0,
803
- "startTime": "2025-03-11T01:01:37.278Z",
804
- "attachments": []
805
- }
806
- ],
807
- "status": "expected"
808
- }
809
- ],
810
- "id": "2f702af7105aeb9bbf4a-9e94cc6aefa950e625cc",
811
- "file": "qb/auth/tokenRenewal.test.ts",
812
- "line": 31,
813
- "column": 3
814
- }
815
- ]
816
- }
817
- ]
818
- }
819
- ],
820
- "errors": [],
821
- "stats": {
822
- "startTime": "2025-03-11T01:01:18.705Z",
823
- "duration": 336989.808,
824
- "expected": 6,
825
- "skipped": 0,
826
- "unexpected": 0,
827
- "flaky": 0
828
- }
829
- }