gwchq-textjam 0.2.12 → 0.2.14

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 (2) hide show
  1. package/dist/index.js +99 -62
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -68344,8 +68344,8 @@ __webpack_require__.r(__webpack_exports__);
68344
68344
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
68345
68345
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
68346
68346
  /* harmony export */ });
68347
- /* harmony import */ var _Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(89379);
68348
- /* harmony import */ var _Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectWithoutProperties_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(53986);
68347
+ /* harmony import */ var _Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(89379);
68348
+ /* harmony import */ var _Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectWithoutProperties_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(53986);
68349
68349
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51649);
68350
68350
  /* harmony import */ var _hello_pangea_dnd__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(98850);
68351
68351
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14062);
@@ -68369,7 +68369,7 @@ var DraggableTab = _ref => {
68369
68369
  panelIndex,
68370
68370
  fileIndex
68371
68371
  } = _ref,
68372
- otherProps = (0,_Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectWithoutProperties_js__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(_ref, _excluded);
68372
+ otherProps = (0,_Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectWithoutProperties_js__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(_ref, _excluded);
68373
68373
  var openFiles = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useSelector)(state => state.editor.openedFiles);
68374
68374
  var openFilesCount = openFiles[panelIndex].length;
68375
68375
  var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useDispatch)();
@@ -68386,7 +68386,7 @@ var DraggableTab = _ref => {
68386
68386
  switchToFileTab(panelIndex, (fileIndex + openFilesCount - 1) % openFilesCount);
68387
68387
  }
68388
68388
  };
68389
- var InnerTab = () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(react_tabs__WEBPACK_IMPORTED_MODULE_2__.Tab, (0,_Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)((0,_Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)({
68389
+ var InnerTab = () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(react_tabs__WEBPACK_IMPORTED_MODULE_2__.Tab, (0,_Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)((0,_Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)({
68390
68390
  onClick: e => {
68391
68391
  e.stopPropagation();
68392
68392
  switchToFileTab(panelIndex, fileIndex);
@@ -68404,7 +68404,7 @@ var DraggableTab = _ref => {
68404
68404
  draggableProps,
68405
68405
  dragHandleProps
68406
68406
  } = _ref2;
68407
- return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", (0,_Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)((0,_Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)((0,_Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)({
68407
+ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", (0,_Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)((0,_Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)((0,_Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)({
68408
68408
  className: "draggable-tab",
68409
68409
  ref: innerRef
68410
68410
  }, draggableProps), dragHandleProps), {}, {
@@ -68426,8 +68426,8 @@ __webpack_require__.r(__webpack_exports__);
68426
68426
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
68427
68427
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
68428
68428
  /* harmony export */ });
68429
- /* harmony import */ var _Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(89379);
68430
- /* harmony import */ var _Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectWithoutProperties_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(53986);
68429
+ /* harmony import */ var _Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(89379);
68430
+ /* harmony import */ var _Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectWithoutProperties_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(53986);
68431
68431
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51649);
68432
68432
  /* harmony import */ var _hello_pangea_dnd__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(98850);
68433
68433
  /* harmony import */ var react_tabs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39243);
@@ -68446,8 +68446,8 @@ var DroppableTabList = _ref => {
68446
68446
  children: _children,
68447
68447
  index
68448
68448
  } = _ref,
68449
- otherProps = (0,_Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectWithoutProperties_js__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(_ref, _excluded);
68450
- return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(react_tabs__WEBPACK_IMPORTED_MODULE_1__.TabList, (0,_Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)((0,_Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)({}, otherProps), {}, {
68449
+ otherProps = (0,_Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectWithoutProperties_js__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(_ref, _excluded);
68450
+ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(react_tabs__WEBPACK_IMPORTED_MODULE_1__.TabList, (0,_Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)((0,_Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)({}, otherProps), {}, {
68451
68451
  children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_hello_pangea_dnd__WEBPACK_IMPORTED_MODULE_6__.Droppable, {
68452
68452
  direction: "horizontal",
68453
68453
  droppableId: index.toString(),
@@ -68457,7 +68457,7 @@ var DroppableTabList = _ref => {
68457
68457
  droppableProps,
68458
68458
  placeholder
68459
68459
  } = _ref2;
68460
- return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", (0,_Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)((0,_Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)({
68460
+ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", (0,_Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)((0,_Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)({
68461
68461
  className: "droppable-tab-list"
68462
68462
  }, droppableProps), {}, {
68463
68463
  ref: innerRef,
@@ -103011,7 +103011,7 @@ __webpack_require__.r(__webpack_exports__);
103011
103011
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
103012
103012
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
103013
103013
  /* harmony export */ });
103014
- /* harmony import */ var _Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(89379);
103014
+ /* harmony import */ var _Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(89379);
103015
103015
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51649);
103016
103016
  /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14062);
103017
103017
  /* harmony import */ var _redux_EditorSlice__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(68512);
@@ -103091,7 +103091,7 @@ var ProjectName = _ref => {
103091
103091
  id: "project_name_label",
103092
103092
  className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_3__["default"].projectLabel,
103093
103093
  children: "Project Name"
103094
- }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", (0,_Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)((0,_Users_hanna_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)({
103094
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", (0,_Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)((0,_Users_valeriya_projects_gwc_gwchq_textjam_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)({
103095
103095
  className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(_styles_module_scss__WEBPACK_IMPORTED_MODULE_3__["default"].projectName, className)
103096
103096
  }, hoverProps), {}, {
103097
103097
  children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)((components_Tooltip_Tooltip__WEBPACK_IMPORTED_MODULE_8___default()), {
@@ -373846,6 +373846,7 @@ const useProjectPersistence = ({ user, projectData, hasShownSavePrompt, saveProj
373846
373846
  }
373847
373847
  catch (e) {
373848
373848
  console.error(e);
373849
+ dispatch((0, EditorSlice_1.setSaveTriggered)(false));
373849
373850
  dispatch((0, EditorSlice_1.setSaving)(types_1.SavingState.FAILED));
373850
373851
  }
373851
373852
  // do not include external fn saveProject in dependencies to avoid unwanted calls
@@ -373857,14 +373858,8 @@ const useProjectPersistence = ({ user, projectData, hasShownSavePrompt, saveProj
373857
373858
  project.commitId,
373858
373859
  project.identifier,
373859
373860
  ]);
373860
- // handle saving update
373861
+ // finish the process if save failed
373861
373862
  (0, react_1.useEffect)(() => {
373862
- if (!projectData?.commitId ||
373863
- projectData.commitId === project.commitId ||
373864
- !saveTriggered ||
373865
- saving === types_1.SavingState.PROCESS)
373866
- return;
373867
- // finish the process if save failed
373868
373863
  if (saving === types_1.SavingState.FAILED) {
373869
373864
  dispatch((0, EditorSlice_1.setSaveTriggered)(false));
373870
373865
  if (leaveFlow.requestId && leaveFlow.status === LeaveFlowSlice_1.LeaveFlowStatus.SAVING)
@@ -373874,6 +373869,14 @@ const useProjectPersistence = ({ user, projectData, hasShownSavePrompt, saveProj
373874
373869
  }));
373875
373870
  return;
373876
373871
  }
373872
+ }, [dispatch, leaveFlow.requestId, leaveFlow.status, saving]);
373873
+ // handle successful saving update
373874
+ (0, react_1.useEffect)(() => {
373875
+ if (!projectData?.commitId ||
373876
+ projectData.commitId === project.commitId ||
373877
+ !saveTriggered ||
373878
+ saving !== types_1.SavingState.SUCCESS)
373879
+ return;
373877
373880
  const incomingCommits = projectData.commits ?? [];
373878
373881
  const commitsById = new Map();
373879
373882
  [...existingCommits, ...incomingCommits].forEach((commit) => {
@@ -375045,6 +375048,10 @@ const STORE_PROJECTS = "projects";
375045
375048
  const STORE_PROJECT_BIN_INDEX = "project_files";
375046
375049
  const DB_VERSION = 1;
375047
375050
  let dbPromise = null;
375051
+ // Helper to reset dbPromise (force reopen)
375052
+ function resetDBPromise() {
375053
+ dbPromise = null;
375054
+ }
375048
375055
  const openDB = () => {
375049
375056
  if (dbPromise)
375050
375057
  return dbPromise;
@@ -375067,6 +375074,31 @@ const openDB = () => {
375067
375074
  });
375068
375075
  return dbPromise;
375069
375076
  };
375077
+ // Silent reopening wrapper for IndexedDb operations
375078
+ async function withSilentReopen(fn) {
375079
+ try {
375080
+ return await fn();
375081
+ }
375082
+ catch (err) {
375083
+ if (err &&
375084
+ (err.name === "InvalidStateError" ||
375085
+ err.name === "TransactionInactiveError" ||
375086
+ err.message?.includes("The database connection is closing") ||
375087
+ err.message?.includes("The database connection is not open"))) {
375088
+ resetDBPromise();
375089
+ return await fn();
375090
+ }
375091
+ throw err;
375092
+ }
375093
+ }
375094
+ // Helper to run a transaction with minimal duplication and silent reopening
375095
+ async function runTx(store, mode, op) {
375096
+ return withSilentReopen(async () => {
375097
+ const db = await openDB();
375098
+ const tx = db.transaction(store, mode);
375099
+ return op(tx);
375100
+ });
375101
+ }
375070
375102
  function txDone(tx) {
375071
375103
  return new Promise((resolve, reject) => {
375072
375104
  tx.oncomplete = () => resolve();
@@ -375087,69 +375119,74 @@ async function readWithTx(tx, req) {
375087
375119
  }
375088
375120
  exports.IndexedDb = {
375089
375121
  async set(fileId, blob) {
375090
- const db = await openDB();
375091
- const tx = db.transaction(STORE_BIN, "readwrite");
375092
- tx.objectStore(STORE_BIN).put(blob, fileId);
375093
- await txDone(tx);
375122
+ return runTx(STORE_BIN, "readwrite", async (tx) => {
375123
+ tx.objectStore(STORE_BIN).put(blob, fileId);
375124
+ await txDone(tx);
375125
+ });
375094
375126
  },
375095
375127
  async get(fileId) {
375096
- const db = await openDB();
375097
- const tx = db.transaction(STORE_BIN, "readonly");
375098
- const req = tx.objectStore(STORE_BIN).get(fileId);
375099
- return readWithTx(tx, req);
375128
+ return runTx(STORE_BIN, "readonly", async (tx) => {
375129
+ const req = tx.objectStore(STORE_BIN).get(fileId);
375130
+ return readWithTx(tx, req);
375131
+ });
375100
375132
  },
375101
375133
  async delete(fileId) {
375102
- const db = await openDB();
375103
- const tx = db.transaction(STORE_BIN, "readwrite");
375104
- tx.objectStore(STORE_BIN).delete(fileId);
375105
- await txDone(tx);
375134
+ return runTx(STORE_BIN, "readwrite", async (tx) => {
375135
+ tx.objectStore(STORE_BIN).delete(fileId);
375136
+ await txDone(tx);
375137
+ });
375106
375138
  },
375107
375139
  async setProject(projectKey, project) {
375108
375140
  if (!projectKey)
375109
375141
  return;
375110
- const db = await openDB();
375111
- const tx = db.transaction(STORE_PROJECTS, "readwrite");
375112
- tx.objectStore(STORE_PROJECTS).put({ ...project, savedAt: new Date().toISOString() }, projectKey);
375113
- await txDone(tx);
375142
+ return runTx(STORE_PROJECTS, "readwrite", async (tx) => {
375143
+ tx.objectStore(STORE_PROJECTS).put({
375144
+ ...project,
375145
+ savedAt: new Date().toISOString(),
375146
+ }, projectKey);
375147
+ await txDone(tx);
375148
+ });
375114
375149
  },
375115
375150
  async getProject(projectKey) {
375116
- const db = await openDB();
375117
- const tx = db.transaction(STORE_PROJECTS, "readonly");
375118
- const req = tx.objectStore(STORE_PROJECTS).get(projectKey);
375119
- return readWithTx(tx, req);
375151
+ return runTx(STORE_PROJECTS, "readonly", async (tx) => {
375152
+ const req = tx.objectStore(STORE_PROJECTS).get(projectKey);
375153
+ return readWithTx(tx, req);
375154
+ });
375120
375155
  },
375121
375156
  async deleteProject(projectKey) {
375122
- const db = await openDB();
375123
- const tx = db.transaction(STORE_PROJECTS, "readwrite");
375124
- tx.objectStore(STORE_PROJECTS).delete(projectKey);
375125
- await txDone(tx);
375157
+ return runTx(STORE_PROJECTS, "readwrite", async (tx) => {
375158
+ tx.objectStore(STORE_PROJECTS).delete(projectKey);
375159
+ await txDone(tx);
375160
+ });
375126
375161
  },
375127
375162
  async setProjectFileIds(projectKey, fileIds) {
375128
- const db = await openDB();
375129
- const tx = db.transaction(STORE_PROJECT_BIN_INDEX, "readwrite");
375130
- tx.objectStore(STORE_PROJECT_BIN_INDEX).put(fileIds, projectKey);
375131
- await txDone(tx);
375163
+ return runTx(STORE_PROJECT_BIN_INDEX, "readwrite", async (tx) => {
375164
+ tx.objectStore(STORE_PROJECT_BIN_INDEX).put(fileIds, projectKey);
375165
+ await txDone(tx);
375166
+ });
375132
375167
  },
375133
375168
  async getProjectFileIds(projectKey) {
375134
- const db = await openDB();
375135
- const tx = db.transaction(STORE_PROJECT_BIN_INDEX, "readonly");
375136
- const req = tx.objectStore(STORE_PROJECT_BIN_INDEX).get(projectKey);
375137
- const res = await readWithTx(tx, req);
375138
- return res ?? [];
375169
+ return runTx(STORE_PROJECT_BIN_INDEX, "readonly", async (tx) => {
375170
+ const req = tx
375171
+ .objectStore(STORE_PROJECT_BIN_INDEX)
375172
+ .get(projectKey);
375173
+ const res = await readWithTx(tx, req);
375174
+ return res ?? [];
375175
+ });
375139
375176
  },
375140
375177
  async deleteProjectFileIds(projectKey) {
375141
- const db = await openDB();
375142
- const tx = db.transaction(STORE_PROJECT_BIN_INDEX, "readwrite");
375143
- tx.objectStore(STORE_PROJECT_BIN_INDEX).delete(projectKey);
375144
- await txDone(tx);
375178
+ return runTx(STORE_PROJECT_BIN_INDEX, "readwrite", async (tx) => {
375179
+ tx.objectStore(STORE_PROJECT_BIN_INDEX).delete(projectKey);
375180
+ await txDone(tx);
375181
+ });
375145
375182
  },
375146
375183
  async clearAll() {
375147
- const db = await openDB();
375148
- const tx = db.transaction([STORE_BIN, STORE_PROJECTS, STORE_PROJECT_BIN_INDEX], "readwrite");
375149
- tx.objectStore(STORE_BIN).clear();
375150
- tx.objectStore(STORE_PROJECTS).clear();
375151
- tx.objectStore(STORE_PROJECT_BIN_INDEX).clear();
375152
- await txDone(tx);
375184
+ return runTx([STORE_BIN, STORE_PROJECTS, STORE_PROJECT_BIN_INDEX], "readwrite", async (tx) => {
375185
+ tx.objectStore(STORE_BIN).clear();
375186
+ tx.objectStore(STORE_PROJECTS).clear();
375187
+ tx.objectStore(STORE_PROJECT_BIN_INDEX).clear();
375188
+ await txDone(tx);
375189
+ });
375153
375190
  },
375154
375191
  };
375155
375192
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "gwchq-textjam",
3
3
  "description": "Embeddable React editor used in Raspberry Pi text-based projects.",
4
- "version": "0.2.12",
4
+ "version": "0.2.14",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/GirlsFirst/gwchq-textjam",
7
7
  "author": "Girls Who Code HQ",