@airtable/blocks 1.8.0 → 1.9.0-experimental

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 (93) hide show
  1. package/CHANGELOG.md +16 -2
  2. package/dist/cjs/error_utils.js +17 -0
  3. package/dist/cjs/models/base.js +16 -5
  4. package/dist/cjs/models/cursor.js +2 -0
  5. package/dist/cjs/models/field.js +146 -27
  6. package/dist/cjs/models/grouped_record_query_result.js +5 -14
  7. package/dist/cjs/models/linked_records_query_result.js +75 -27
  8. package/dist/cjs/models/mutation_constants.js +3 -1
  9. package/dist/cjs/models/mutations.js +67 -176
  10. package/dist/cjs/models/query_manager.js +327 -0
  11. package/dist/cjs/models/record.js +308 -55
  12. package/dist/cjs/models/record_query_result.js +4 -1
  13. package/dist/cjs/models/record_store.js +554 -765
  14. package/dist/cjs/models/table.js +22 -13
  15. package/dist/cjs/models/table_or_view_query_result.js +480 -414
  16. package/dist/cjs/models/view_data_store.js +243 -295
  17. package/dist/cjs/private_utils.js +50 -0
  18. package/dist/cjs/sdk.js +12 -2
  19. package/dist/cjs/testing/{mock_airtable_interface.js → abstract_mock_airtable_interface.js} +71 -22
  20. package/dist/cjs/types/block_query_spec.js +85 -0
  21. package/dist/cjs/types/mutations.js +1 -0
  22. package/dist/cjs/ui/icon_config.js +4 -2
  23. package/dist/cjs/ui/use_global_config.js +1 -1
  24. package/dist/cjs/ui/use_records.js +5 -1
  25. package/dist/cjs/unstable_testing_utils.js +2 -2
  26. package/dist/cjs/watchable.js +123 -71
  27. package/dist/types/src/models/base.d.ts +10 -3
  28. package/dist/types/src/models/base.d.ts.map +1 -1
  29. package/dist/types/src/models/cursor.d.ts +2 -0
  30. package/dist/types/src/models/cursor.d.ts.map +1 -1
  31. package/dist/types/src/models/field.d.ts +65 -1
  32. package/dist/types/src/models/field.d.ts.map +1 -1
  33. package/dist/types/src/models/grouped_record_query_result.d.ts +3 -3
  34. package/dist/types/src/models/grouped_record_query_result.d.ts.map +1 -1
  35. package/dist/types/src/models/linked_records_query_result.d.ts.map +1 -1
  36. package/dist/types/src/models/mutation_constants.d.ts +1 -0
  37. package/dist/types/src/models/mutation_constants.d.ts.map +1 -1
  38. package/dist/types/src/models/mutations.d.ts.map +1 -1
  39. package/dist/types/src/models/query_manager.d.ts +2 -0
  40. package/dist/types/src/models/query_manager.d.ts.map +1 -0
  41. package/dist/types/src/models/record.d.ts +12 -3
  42. package/dist/types/src/models/record.d.ts.map +1 -1
  43. package/dist/types/src/models/record_query_result.d.ts +3 -2
  44. package/dist/types/src/models/record_query_result.d.ts.map +1 -1
  45. package/dist/types/src/models/record_store.d.ts.map +1 -1
  46. package/dist/types/src/models/table.d.ts +8 -4
  47. package/dist/types/src/models/table.d.ts.map +1 -1
  48. package/dist/types/src/models/table_or_view_query_result.d.ts +3 -5
  49. package/dist/types/src/models/table_or_view_query_result.d.ts.map +1 -1
  50. package/dist/types/src/models/view_data_store.d.ts +0 -1
  51. package/dist/types/src/models/view_data_store.d.ts.map +1 -1
  52. package/dist/types/src/models/view_metadata_query_result.d.ts +1 -1
  53. package/dist/types/src/models/view_metadata_query_result.d.ts.map +1 -1
  54. package/dist/types/src/private_utils.d.ts +30 -1
  55. package/dist/types/src/private_utils.d.ts.map +1 -1
  56. package/dist/types/src/sdk.d.ts.map +1 -1
  57. package/dist/types/src/testing/{mock_airtable_interface.d.ts → abstract_mock_airtable_interface.d.ts} +20 -15
  58. package/dist/types/src/testing/abstract_mock_airtable_interface.d.ts.map +1 -0
  59. package/dist/types/src/types/airtable_interface.d.ts +43 -19
  60. package/dist/types/src/types/airtable_interface.d.ts.map +1 -1
  61. package/dist/types/src/types/block_query_spec.d.ts +139 -0
  62. package/dist/types/src/types/block_query_spec.d.ts.map +1 -0
  63. package/dist/types/src/types/field.d.ts +80 -44
  64. package/dist/types/src/types/field.d.ts.map +1 -1
  65. package/dist/types/src/types/mutations.d.ts +31 -3
  66. package/dist/types/src/types/mutations.d.ts.map +1 -1
  67. package/dist/types/src/types/table.d.ts +0 -2
  68. package/dist/types/src/types/table.d.ts.map +1 -1
  69. package/dist/types/src/types/view.d.ts +3 -8
  70. package/dist/types/src/types/view.d.ts.map +1 -1
  71. package/dist/types/src/ui/icon_config.d.ts +5 -3
  72. package/dist/types/src/ui/icon_config.d.ts.map +1 -1
  73. package/dist/types/src/ui/link.d.ts +1 -1
  74. package/dist/types/src/ui/link.d.ts.map +1 -1
  75. package/dist/types/src/ui/use_global_config.d.ts +1 -1
  76. package/dist/types/src/unstable_testing_utils.d.ts +1 -1
  77. package/dist/types/src/unstable_testing_utils.d.ts.map +1 -1
  78. package/dist/types/src/watchable.d.ts.map +1 -1
  79. package/dist/types/test/airtable_interface_mocks/fixture_data.d.ts +121 -0
  80. package/dist/types/test/airtable_interface_mocks/fixture_data.d.ts.map +1 -0
  81. package/dist/types/test/airtable_interface_mocks/linked_records.d.ts +2 -2
  82. package/dist/types/test/airtable_interface_mocks/linked_records.d.ts.map +1 -1
  83. package/dist/types/test/airtable_interface_mocks/{mock_airtable_interface_internal.d.ts → mock_airtable_interface.d.ts} +26 -18
  84. package/dist/types/test/airtable_interface_mocks/mock_airtable_interface.d.ts.map +1 -0
  85. package/dist/types/test/airtable_interface_mocks/mock_base_data_stores.d.ts +51 -0
  86. package/dist/types/test/airtable_interface_mocks/mock_base_data_stores.d.ts.map +1 -0
  87. package/dist/types/test/airtable_interface_mocks/project_tracker.d.ts +2 -2
  88. package/dist/types/test/airtable_interface_mocks/project_tracker.d.ts.map +1 -1
  89. package/dist/types/test/test_helpers.d.ts +2 -0
  90. package/dist/types/test/test_helpers.d.ts.map +1 -1
  91. package/package.json +3 -1
  92. package/dist/types/src/testing/mock_airtable_interface.d.ts.map +0 -1
  93. package/dist/types/test/airtable_interface_mocks/mock_airtable_interface_internal.d.ts.map +0 -1
@@ -1735,6 +1735,7 @@ function (_AbstractModel) {
1735
1735
  * @param name name for the field. must be case-insensitive unique for the table
1736
1736
  * @param type type for the field
1737
1737
  * @param options options for the field. omit for fields without writable options
1738
+ * @param description description for the field. omit to leave blank
1738
1739
  *
1739
1740
  * @example
1740
1741
  * ```js
@@ -1748,7 +1749,7 @@ function (_AbstractModel) {
1748
1749
 
1749
1750
  }, {
1750
1751
  key: "checkPermissionsForCreateField",
1751
- value: function checkPermissionsForCreateField(name, type, options) {
1752
+ value: function checkPermissionsForCreateField(name, type, options, description) {
1752
1753
  return this._sdk.__mutations.checkPermissionsForMutation({
1753
1754
  type: _mutations.MutationTypes.CREATE_SINGLE_FIELD,
1754
1755
  tableId: this.id,
@@ -1759,11 +1760,12 @@ function (_AbstractModel) {
1759
1760
  type: type
1760
1761
  }, options ? {
1761
1762
  options
1762
- } : null) : undefined
1763
+ } : null) : undefined,
1764
+ description
1763
1765
  });
1764
1766
  }
1765
1767
  /**
1766
- * An alias for `checkPermissionsForCreateField(name, type, options).hasPermission`.
1768
+ * An alias for `checkPermissionsForCreateField(name, type, options, description).hasPermission`.
1767
1769
  *
1768
1770
  * Checks whether the current user has permission to create a field in this table.
1769
1771
  *
@@ -1772,6 +1774,7 @@ function (_AbstractModel) {
1772
1774
  * @param name name for the field. must be case-insensitive unique for the table
1773
1775
  * @param type type for the field
1774
1776
  * @param options options for the field. omit for fields without writable options
1777
+ * @param description description for the field. omit to leave blank
1775
1778
  *
1776
1779
  * @example
1777
1780
  * ```js
@@ -1785,8 +1788,8 @@ function (_AbstractModel) {
1785
1788
 
1786
1789
  }, {
1787
1790
  key: "hasPermissionToCreateField",
1788
- value: function hasPermissionToCreateField(name, type, options) {
1789
- return this.checkPermissionsForCreateField(name, type, options).hasPermission;
1791
+ value: function hasPermissionToCreateField(name, type, options, description) {
1792
+ return this.checkPermissionsForCreateField(name, type, options, description).hasPermission;
1790
1793
  }
1791
1794
  /**
1792
1795
  * Creates a new field.
@@ -1807,6 +1810,8 @@ function (_AbstractModel) {
1807
1810
  * @param name name for the field. must be case-insensitive unique
1808
1811
  * @param type type for the field
1809
1812
  * @param options options for the field. omit for fields without writable options
1813
+ * @param description description for the field. is optional and will be `''` if not specified
1814
+ * or if specified as `null`.
1810
1815
  *
1811
1816
  * @example
1812
1817
  * ```js
@@ -1841,7 +1846,7 @@ function (_AbstractModel) {
1841
1846
 
1842
1847
  }, {
1843
1848
  key: "createFieldAsync",
1844
- value: function createFieldAsync(name, type, options) {
1849
+ value: function createFieldAsync(name, type, options, description) {
1845
1850
  var fieldId;
1846
1851
  return _regenerator.default.async(function createFieldAsync$(_context9) {
1847
1852
  while (1) {
@@ -1858,7 +1863,11 @@ function (_AbstractModel) {
1858
1863
  type: type
1859
1864
  }, options ? {
1860
1865
  options
1861
- } : null)
1866
+ } : null),
1867
+ // Coerce undefined to null so that only old SDKs pass "undefined" for description
1868
+ // '' is permitted, as we already set empty descriptions to '' when editing descriptions
1869
+ // from the UI
1870
+ description: description !== null && description !== void 0 ? description : null
1862
1871
  }));
1863
1872
 
1864
1873
  case 3:
@@ -2015,7 +2024,11 @@ function (_AbstractModel) {
2015
2024
  if (didViewSchemaChange) {
2016
2025
  didTableSchemaChange = true;
2017
2026
  }
2018
- }
2027
+ } // We must directly trigger deletions on the recordStore.viewDataStore
2028
+ // because the viewModel might not have been created. (See above comment)
2029
+
2030
+
2031
+ this._recordStore.sendViewDataDeletionIfViewIsDeleted(_viewId);
2019
2032
  }
2020
2033
  } catch (err) {
2021
2034
  _didIteratorError4 = true;
@@ -2100,11 +2113,7 @@ function (_AbstractModel) {
2100
2113
 
2101
2114
 
2102
2115
  this._cachedFieldNamesById = null;
2103
- } // NOTE: Record store onChange triggers must be performed AFTER field onChange triggers to
2104
- // ensure the column type providers are not stale.
2105
-
2106
-
2107
- this._recordStore.triggerOnChangeForDirtyPaths(dirtyPaths);
2116
+ }
2108
2117
 
2109
2118
  return didTableSchemaChange;
2110
2119
  }