@airtable/blocks 1.10.2-experimental-640bd10-20220211 → 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/dist/cjs/error_utils.js +9 -34
  3. package/dist/cjs/models/base.js +15 -0
  4. package/dist/cjs/models/field.js +99 -4
  5. package/dist/cjs/models/grouped_record_query_result.js +14 -5
  6. package/dist/cjs/models/linked_records_query_result.js +44 -86
  7. package/dist/cjs/models/mutations.js +234 -53
  8. package/dist/cjs/models/record.js +55 -310
  9. package/dist/cjs/models/record_query_result.js +1 -4
  10. package/dist/cjs/models/record_store.js +779 -557
  11. package/dist/cjs/models/table.js +6 -6
  12. package/dist/cjs/models/table_or_view_query_result.js +419 -526
  13. package/dist/cjs/models/view_data_store.js +295 -255
  14. package/dist/cjs/private_utils.js +0 -40
  15. package/dist/cjs/sdk.js +2 -12
  16. package/dist/cjs/testing/abstract_mock_airtable_interface.js +11 -57
  17. package/dist/cjs/types/airtable_interface.js +2 -17
  18. package/dist/cjs/types/mutations.js +1 -0
  19. package/dist/cjs/ui/use_records.js +1 -5
  20. package/dist/cjs/unstable_testing_utils.js +1 -55
  21. package/dist/cjs/watchable.js +1 -15
  22. package/dist/types/src/error_utils.d.ts +4 -2
  23. package/dist/types/src/error_utils.d.ts.map +1 -1
  24. package/dist/types/src/models/base.d.ts +10 -0
  25. package/dist/types/src/models/base.d.ts.map +1 -1
  26. package/dist/types/src/models/field.d.ts +58 -0
  27. package/dist/types/src/models/field.d.ts.map +1 -1
  28. package/dist/types/src/models/grouped_record_query_result.d.ts +3 -3
  29. package/dist/types/src/models/grouped_record_query_result.d.ts.map +1 -1
  30. package/dist/types/src/models/linked_records_query_result.d.ts.map +1 -1
  31. package/dist/types/src/models/mutations.d.ts.map +1 -1
  32. package/dist/types/src/models/record.d.ts +3 -12
  33. package/dist/types/src/models/record.d.ts.map +1 -1
  34. package/dist/types/src/models/record_query_result.d.ts +2 -3
  35. package/dist/types/src/models/record_query_result.d.ts.map +1 -1
  36. package/dist/types/src/models/record_store.d.ts.map +1 -1
  37. package/dist/types/src/models/table_or_view_query_result.d.ts +5 -3
  38. package/dist/types/src/models/table_or_view_query_result.d.ts.map +1 -1
  39. package/dist/types/src/models/view_data_store.d.ts +1 -0
  40. package/dist/types/src/models/view_data_store.d.ts.map +1 -1
  41. package/dist/types/src/models/view_metadata_query_result.d.ts +1 -1
  42. package/dist/types/src/models/view_metadata_query_result.d.ts.map +1 -1
  43. package/dist/types/src/private_utils.d.ts +1 -24
  44. package/dist/types/src/private_utils.d.ts.map +1 -1
  45. package/dist/types/src/sdk.d.ts.map +1 -1
  46. package/dist/types/src/testing/abstract_mock_airtable_interface.d.ts +11 -11
  47. package/dist/types/src/testing/abstract_mock_airtable_interface.d.ts.map +1 -1
  48. package/dist/types/src/types/airtable_interface.d.ts +20 -59
  49. package/dist/types/src/types/airtable_interface.d.ts.map +1 -1
  50. package/dist/types/src/types/base.d.ts +1 -0
  51. package/dist/types/src/types/base.d.ts.map +1 -1
  52. package/dist/types/src/types/mutations.d.ts +25 -2
  53. package/dist/types/src/types/mutations.d.ts.map +1 -1
  54. package/dist/types/src/types/table.d.ts +2 -0
  55. package/dist/types/src/types/table.d.ts.map +1 -1
  56. package/dist/types/src/types/view.d.ts +8 -3
  57. package/dist/types/src/types/view.d.ts.map +1 -1
  58. package/dist/types/src/ui/record_card.d.ts +1 -1
  59. package/dist/types/src/unstable_testing_utils.d.ts +1 -4
  60. package/dist/types/src/unstable_testing_utils.d.ts.map +1 -1
  61. package/dist/types/src/watchable.d.ts.map +1 -1
  62. package/dist/types/{src/testing → test/airtable_interface_mocks}/fixture_data.d.ts +19 -42
  63. package/dist/types/test/airtable_interface_mocks/fixture_data.d.ts.map +1 -0
  64. package/dist/types/test/airtable_interface_mocks/linked_records.d.ts +1 -1
  65. package/dist/types/test/airtable_interface_mocks/linked_records.d.ts.map +1 -1
  66. package/dist/types/test/airtable_interface_mocks/mock_airtable_interface.d.ts +12 -19
  67. package/dist/types/test/airtable_interface_mocks/mock_airtable_interface.d.ts.map +1 -1
  68. package/dist/types/test/airtable_interface_mocks/project_tracker.d.ts +1 -1
  69. package/dist/types/test/airtable_interface_mocks/project_tracker.d.ts.map +1 -1
  70. package/dist/types/test/test_helpers.d.ts +0 -2
  71. package/dist/types/test/test_helpers.d.ts.map +1 -1
  72. package/package.json +1 -2
  73. package/dist/cjs/models/query_manager.js +0 -328
  74. package/dist/cjs/testing/fixture_data.js +0 -268
  75. package/dist/cjs/testing/mock_base_data_stores.js +0 -876
  76. package/dist/cjs/types/block_query_spec.js +0 -85
  77. package/dist/types/src/models/query_manager.d.ts +0 -2
  78. package/dist/types/src/models/query_manager.d.ts.map +0 -1
  79. package/dist/types/src/testing/fixture_data.d.ts.map +0 -1
  80. package/dist/types/src/testing/mock_base_data_stores.d.ts +0 -55
  81. package/dist/types/src/testing/mock_base_data_stores.d.ts.map +0 -1
  82. package/dist/types/src/types/block_query_spec.d.ts +0 -139
  83. package/dist/types/src/types/block_query_spec.d.ts.map +0 -1
  84. package/dist/types/test/testing/fixture_data.test.d.ts +0 -2
  85. package/dist/types/test/testing/fixture_data.test.d.ts.map +0 -1
@@ -1,268 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- require("core-js/modules/es.symbol");
6
-
7
- require("core-js/modules/es.symbol.description");
8
-
9
- require("core-js/modules/es.array.filter");
10
-
11
- require("core-js/modules/es.array.includes");
12
-
13
- require("core-js/modules/es.array.iterator");
14
-
15
- require("core-js/modules/es.array.map");
16
-
17
- require("core-js/modules/es.object.get-own-property-descriptors");
18
-
19
- require("core-js/modules/es.object.to-string");
20
-
21
- require("core-js/modules/es.string.includes");
22
-
23
- require("core-js/modules/web.dom-collections.for-each");
24
-
25
- require("core-js/modules/web.dom-collections.iterator");
26
-
27
- Object.defineProperty(exports, "__esModule", {
28
- value: true
29
- });
30
- exports.convertFixtureDataToSdkInitData = convertFixtureDataToSdkInitData;
31
-
32
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
33
-
34
- var _private_utils = require("../private_utils");
35
-
36
- var _airtable_interface = require("../types/airtable_interface");
37
-
38
- var _error_utils = require("../error_utils");
39
-
40
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
41
-
42
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
43
-
44
- // There are some values that FixtureData does not cover but SdkInitData
45
- // requires, so we fill in some mock values for them if needed.
46
- var MOCK_BLOCK_INSTALLATION_ID = 'blicPfOILwejF6HL2';
47
- var MOCK_BLOCK_RUN_CONTEXT_TYPE = _airtable_interface.BlockRunContextType.DASHBOARD_APP;
48
- var MOCK_BASE_PERMISSION_LEVEL = 'create';
49
- var MOCK_CURRENT_USER_ID = 'usrGalSamari';
50
- var MOCK_BASE_COLOR = 'purple';
51
- var MOCK_BILLING_GROUP = 'pro';
52
- /** @hidden */
53
-
54
- function convertFixtureDataToSdkInitData(fixtureData) {
55
- var _fixtureData$base = fixtureData.base,
56
- id = _fixtureData$base.id,
57
- name = _fixtureData$base.name,
58
- color = _fixtureData$base.color,
59
- tables = _fixtureData$base.tables,
60
- collaborators = _fixtureData$base.collaborators,
61
- globalConfig = fixtureData.globalConfig;
62
- var tablesById = {};
63
-
64
- if (tables.length === 0) {
65
- throw (0, _error_utils.spawnError)('Fixture data must include at least one table');
66
- }
67
-
68
- var _iteratorNormalCompletion = true;
69
- var _didIteratorError = false;
70
- var _iteratorError = undefined;
71
-
72
- try {
73
- for (var _iterator = tables[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
74
- var table = _step.value;
75
- var tableData = convertTableFixtureDataToTableData(table);
76
-
77
- if (tablesById[table.id]) {
78
- throw (0, _error_utils.spawnError)('repeated table ID: %s', table.id);
79
- }
80
-
81
- tablesById[table.id] = tableData;
82
- }
83
- } catch (err) {
84
- _didIteratorError = true;
85
- _iteratorError = err;
86
- } finally {
87
- try {
88
- if (!_iteratorNormalCompletion && _iterator.return != null) {
89
- _iterator.return();
90
- }
91
- } finally {
92
- if (_didIteratorError) {
93
- throw _iteratorError;
94
- }
95
- }
96
- }
97
-
98
- return {
99
- isDevelopmentMode: false,
100
- blockInstallationId: MOCK_BLOCK_INSTALLATION_ID,
101
- isFirstRun: false,
102
- isFullscreen: false,
103
- initialKvValuesByKey: _objectSpread({}, globalConfig),
104
- runContext: {
105
- type: MOCK_BLOCK_RUN_CONTEXT_TYPE
106
- },
107
- baseData: {
108
- id,
109
- name,
110
- color: color !== null && color !== void 0 ? color : MOCK_BASE_COLOR,
111
- activeTableId: tables[0].id,
112
- tableOrder: tables.map(t => t.id),
113
- tablesById,
114
- permissionLevel: MOCK_BASE_PERMISSION_LEVEL,
115
- currentUserId: MOCK_CURRENT_USER_ID,
116
- enabledFeatureNames: [],
117
- collaboratorsById: (0, _private_utils.keyBy)(collaborators.map(c => {
118
- // filter out c.isActive
119
- var email = c.email,
120
- profilePicUrl = c.profilePicUrl;
121
- return {
122
- id: c.id,
123
- name: c.name,
124
- email,
125
- profilePicUrl
126
- };
127
- }), _private_utils.getId),
128
- activeCollaboratorIds: collaborators.filter(c => c.isActive).map(c => c.id),
129
- cursorData: null,
130
- billingPlanGrouping: MOCK_BILLING_GROUP,
131
- appInterface: {},
132
- isBlockDevelopmentRestrictionEnabled: false
133
- },
134
- intentData: null
135
- };
136
- }
137
- /** @internal */
138
-
139
-
140
- function convertTableFixtureDataToTableData(tableFixtureData) {
141
- var id = tableFixtureData.id,
142
- name = tableFixtureData.name,
143
- description = tableFixtureData.description,
144
- fields = tableFixtureData.fields,
145
- views = tableFixtureData.views,
146
- records = tableFixtureData.records;
147
- var tableRecordIds = records.map(_private_utils.getId);
148
- var fieldsById = {};
149
-
150
- if (fields.length === 0) {
151
- throw (0, _error_utils.spawnError)('Every table in fixture data must specify at least one field, but table "%s" specified zero fields', id);
152
- }
153
-
154
- var _iteratorNormalCompletion2 = true;
155
- var _didIteratorError2 = false;
156
- var _iteratorError2 = undefined;
157
-
158
- try {
159
- for (var _iterator2 = fields[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
160
- var field = _step2.value;
161
- var fieldData = convertFieldFixtureDataToFieldData(field);
162
-
163
- if (fieldsById[field.id]) {
164
- throw (0, _error_utils.spawnError)('repeated field ID: %s', field.id);
165
- }
166
-
167
- fieldsById[field.id] = fieldData;
168
- }
169
- } catch (err) {
170
- _didIteratorError2 = true;
171
- _iteratorError2 = err;
172
- } finally {
173
- try {
174
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
175
- _iterator2.return();
176
- }
177
- } finally {
178
- if (_didIteratorError2) {
179
- throw _iteratorError2;
180
- }
181
- }
182
- }
183
-
184
- var viewsById = {};
185
-
186
- if (views.length === 0) {
187
- throw (0, _error_utils.spawnError)('Every table in fixture data must specify at least one view, but table "%s" specified zero views', id);
188
- }
189
-
190
- var _iteratorNormalCompletion3 = true;
191
- var _didIteratorError3 = false;
192
- var _iteratorError3 = undefined;
193
-
194
- try {
195
- for (var _iterator3 = views[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
196
- var view = _step3.value;
197
- var viewData = view;
198
-
199
- if (viewsById[view.id]) {
200
- throw (0, _error_utils.spawnError)('repeated view ID: %s', view.id);
201
- }
202
-
203
- view.records.map(_private_utils.getId).forEach(viewRecordId => {
204
- if (!tableRecordIds.includes(viewRecordId)) {
205
- throw (0, _error_utils.spawnError)('record %s not present in table %s', viewRecordId, id);
206
- }
207
- });
208
- viewsById[view.id] = viewData;
209
- }
210
- } catch (err) {
211
- _didIteratorError3 = true;
212
- _iteratorError3 = err;
213
- } finally {
214
- try {
215
- if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
216
- _iterator3.return();
217
- }
218
- } finally {
219
- if (_didIteratorError3) {
220
- throw _iteratorError3;
221
- }
222
- }
223
- }
224
-
225
- return {
226
- id,
227
- name,
228
- description,
229
- primaryFieldId: fields[0].id,
230
- fieldsById,
231
- activeViewId: views[0].id,
232
- viewOrder: views.map(v => v.id),
233
- viewsById,
234
- lock: null,
235
- externalSyncById: null
236
- };
237
- }
238
- /** @internal */
239
-
240
-
241
- function convertFieldFixtureDataToFieldData(fieldFixtureData) {
242
- var id = fieldFixtureData.id,
243
- name = fieldFixtureData.name,
244
- description = fieldFixtureData.description,
245
- type = fieldFixtureData.type,
246
- options = fieldFixtureData.options;
247
- return {
248
- id,
249
- name,
250
- type,
251
- description,
252
- typeOptions: options,
253
- lock: null
254
- };
255
- }
256
- /**
257
- * A complete set of information necessary to initialize a simulated Airtable
258
- * Base in automated test environments. This is currently copied from
259
- * block-testing.
260
- *
261
- * Unlike SdkInitData which does not contain record data by design,
262
- * FixtureData contains it in fixtureData.base.tables[number].records,
263
- * and relies on dependent modules to simulate the hyperbase behavior of
264
- * only making those records after corresponding necessary calls to
265
- * AirtableInterface.
266
- *
267
- * @hidden
268
- */