1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2025-04-14 23:03:16 +00:00

normalize module paths for MSW server plugin, setup globals type defition for $tw, setup jsfonfig.json to map $:/ paths to file system paths

This commit is contained in:
joshuafontany 2025-02-27 21:18:22 -08:00
parent c7dc21aa81
commit dc0cc40d5f
63 changed files with 124 additions and 83 deletions

2
globals.d.ts vendored Normal file
View File

@ -0,0 +1,2 @@
// globals.d.ts
declare var $tw: any;

29
jsconfig.json Normal file
View File

@ -0,0 +1,29 @@
{
"compilerOptions": {
"target": "ES2019",
"module": "CommonJS",
"lib": ["dom", "es2019"],
"allowSyntheticDefaultImports": true,
"checkJs": true,
"baseUrl": ".",
"paths": {
"$:/plugins/*": ["plugins/*"],
"$:/core/*": ["core/*"],
"$:/editions/*": ["editions/*"]
}
},
"include": [
"globals.d.ts",
"core/**/*.js",
"plugins/**/*.js",
"editions/**/*.js"
],
"exclude": [
"node_modules",
".git",
"dist",
"tmp",
"output"
]
}

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-add-permission.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-add-permission.js
type: application/javascript
module-type: command

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-add-role.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-add-role.js
type: application/javascript
module-type: command

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-add-user.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-add-user.js
type: application/javascript
module-type: command

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-assign-role-permission.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-assign-role-permission.js
type: application/javascript
module-type: command

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-assign-user-role.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-assign-user-role.js
type: application/javascript
module-type: command

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-create-bag.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-create-bag.js
type: application/javascript
module-type: command

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-create-recipe.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-create-recipe.js
type: application/javascript
module-type: command
@ -35,7 +35,7 @@ Command.prototype.execute = function() {
}
var recipeName = this.params[0],
bagList = (this.params[1] || "").split(" "),
recipeDescription = this.params[2] || recipeNameName;
recipeDescription = this.params[2] || recipeName;
// Create recipe
var result = $tw.mws.store.createRecipe(recipeName,bagList,recipeDescription);
if(result) {

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-listen.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-listen.js
type: application/javascript
module-type: command

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-load-archive.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-load-archive.js
type: application/javascript
module-type: command

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-load-plugin-bags.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-load-plugin-bags.js
type: application/javascript
module-type: command
@ -40,7 +40,7 @@ function loadPluginBags() {
const bagName = makePluginBagName(type,publisher,name);
const result = $tw.mws.store.createBag(bagName,pluginFields.description || "(no description)",{allowPrivilegedCharacters: true});
if(result) {
console.log(`Error creating plugin bag ${bagname}: ${JSON.stringify(result)}`);
console.log(`Error creating plugin bag ${bagName}: ${JSON.stringify(result)}`);
}
$tw.mws.store.saveBagTiddler(pluginFields,bagName);
},

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-load-tiddlers.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-load-tiddlers.js
type: application/javascript
module-type: command

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-load-wiki-folder.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-load-wiki-folder.js
type: application/javascript
module-type: command

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-save-archive.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-save-archive.js
type: application/javascript
module-type: command

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-save-tiddler-text.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-save-tiddler-text.js
type: application/javascript
module-type: command

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/commands/mws-test-server.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/commands/mws-test-server.js
type: application/javascript
module-type: command

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/mws-server.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/mws-server.js
type: application/javascript
module-type: library
@ -507,24 +507,26 @@ Server.prototype.requestHandler = function(request,response,options) {
} else if(route.bodyFormat === "string" || route.bodyFormat === "www-form-urlencoded" || !route.bodyFormat) {
// Set the encoding for the incoming request
request.setEncoding("utf8");
var data = "";
var rawData = "";
request.on("data",function(chunk) {
data += chunk.toString();
rawData += chunk.toString();
});
request.on("end",function() {
if(route.bodyFormat === "www-form-urlencoded") {
data = queryString.parse(data);
// Assign the parsed data directly to state.data.
state.data = queryString.parse(rawData);
} else {
state.data = rawData;
}
state.data = data;
route.handler(request,response,state);
});
} else if(route.bodyFormat === "buffer") {
var data = [];
var bufferData = [];
request.on("data",function(chunk) {
data.push(chunk);
bufferData.push(chunk);
});
request.on("end",function() {
state.data = Buffer.concat(data);
state.data = Buffer.concat(bufferData);
route.handler(request,response,state);
})
} else {

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/change-password.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/change-password.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/delete-acl.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/delete-acl.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/delete-bag-tiddler.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/delete-bag-tiddler.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/delete-role.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/delete-role.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/delete-user-account.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/delete-user-account.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/get-acl.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/get-acl.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/get-bag-tiddler-blob.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/get-bag-tiddler-blob.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/get-bag-tiddler.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/get-bag-tiddler.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/get-bag.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/get-bag.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/get-index.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/get-index.js
type: application/javascript
module-type: mws-route
@ -24,7 +24,7 @@ exports.handler = function(request,response,state) {
// If application/json is requested then this is an API request, and gets the response in JSON
if(request.headers.accept && request.headers.accept.indexOf("application/json") !== -1) {
state.sendResponse(200,{"Content-Type": "application/json"},JSON.stringify(recipes),"utf8");
state.sendResponse(200,{"Content-Type": "application/json"},JSON.stringify(recipeList),"utf8");
} else {
// This is not a JSON API request, we should return the raw tiddler content
response.writeHead(200, "OK",{

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/get-login.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/get-login.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/get-recipe-events.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/get-recipe-events.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/get-recipe-tiddler.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/get-recipe-tiddler.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/get-recipe-tiddlers-json.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/get-recipe-tiddlers-json.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/get-system.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/get-system.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/get-users.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/get-users.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/get-wiki.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/get-wiki.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/manage-roles.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/manage-roles.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/manage-user.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/manage-user.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/post-acl.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/post-acl.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/post-anon-config.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/post-anon-config.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/post-anon.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/post-anon.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/post-bag-tiddlers.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/post-bag-tiddlers.js
type: application/javascript
module-type: mws-route
@ -27,7 +27,7 @@ exports.entityName = "bag"
exports.handler = function(request,response,state) {
const path = require("path"),
fs = require("fs"),
processIncomingStream = require("$:/plugins/tiddlywiki/multiwikiserver/routes/helpers/multipart-forms.js").processIncomingStream;
processIncomingStream = require("$:/plugins/tiddlywiki/multiwikiserver/modules/routes/helpers/multipart-forms.js").processIncomingStream;
// Get the parameters
var bag_name = $tw.utils.decodeURIComponentSafe(state.params[0]);
// Process the incoming data

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/post-bag.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/post-bag.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/post-login.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/post-login.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/post-logout.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/post-logout.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/post-recipe.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/post-recipe.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/post-role.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/post-role.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/post-user.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/post-user.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/put-bag.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/put-bag.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/put-recipe-tiddler.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/put-recipe-tiddler.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/put-recipe.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/put-recipe.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/update-role.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/update-role.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/handlers/update-profile.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/handlers/update-profile.js
type: application/javascript
module-type: mws-route

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/helpers/acl-middleware.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/modules/routes/helpers/acl-middleware.js
type: application/javascript
module-type: library

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/routes/helpers/multipart-forms.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/routes/helpers/multipart-forms.js
type: application/javascript
module-type: library
@ -72,7 +72,7 @@ exports.processIncomingStream = function(options) {
} else {
const partFile = parts.find(part => part.name === "file-to-upload" && !!part.filename);
if(!partFile) {
return state.sendResponse(400, {"Content-Type": "text/plain"},"Missing file to upload");
return options.state.sendResponse(400, {"Content-Type": "text/plain"},"Missing file to upload");
}
const type = partFile.headers["content-type"];
const tiddlerFields = {

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/startup.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/startup.js
type: application/javascript
module-type: startup
@ -31,11 +31,11 @@ exports.startup = function() {
function setupStore() {
const path = require("path");
// Create and initialise the attachment store and the tiddler store
const AttachmentStore = require("$:/plugins/tiddlywiki/multiwikiserver/store/attachments.js").AttachmentStore,
const AttachmentStore = require("$:/plugins/tiddlywiki/multiwikiserver/modules/store/attachments.js").AttachmentStore,
attachmentStore = new AttachmentStore({
storePath: path.resolve($tw.boot.wikiPath,"store/")
}),
SqlTiddlerStore = require("$:/plugins/tiddlywiki/multiwikiserver/store/sql-tiddler-store.js").SqlTiddlerStore,
SqlTiddlerStore = require("$:/plugins/tiddlywiki/multiwikiserver/modules/store/sql-tiddler-store.js").SqlTiddlerStore,
store = new SqlTiddlerStore({
databasePath: path.resolve($tw.boot.wikiPath,"store/database.sqlite"),
engine: $tw.wiki.getTiddlerText("$:/config/MultiWikiServer/Engine","better"), // better || wasm
@ -49,7 +49,7 @@ function ServerManager(store) {
}
ServerManager.prototype.createServer = function(options) {
const MWSServer = require("$:/plugins/tiddlywiki/multiwikiserver/mws-server.js").Server,
const MWSServer = require("$:/plugins/tiddlywiki/multiwikiserver/modules/mws-server.js").Server,
server = new MWSServer(options);
this.servers.push(server);
return server;

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/store/attachments.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/store/attachments.js
type: application/javascript
module-type: library

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/store/sql-engine.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/store/sql-engine.js
type: application/javascript
module-type: library
@ -16,6 +16,7 @@ Create a database engine. Options include:
databasePath - path to the database file (can be ":memory:" or missing to get a temporary database)
engine - wasm | better
verbose - flag to turn on console logging, defaults to undefined
*/
function SqlEngine(options) {
options = options || {};
@ -37,6 +38,9 @@ function SqlEngine(options) {
({ DatabaseSync: Database } = require("node:sqlite"));
break;
case "wasm":
// "node-sqlite3-wasm" requires manual installation
// see https://mws.tiddlywiki.com/#Database%20Engines
// @ts-ignore
({ Database } = require("node-sqlite3-wasm"));
break;
case "better":
@ -44,7 +48,7 @@ function SqlEngine(options) {
break;
}
this.db = new Database(databasePath,{
verbose: undefined && console.log
verbose: options.verbose ? console.log : undefined
});
// Turn on WAL mode for better-sqlite3
if(this.engine === "better") {

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/store/sql-tiddler-database.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/store/sql-tiddler-database.js
type: application/javascript
module-type: library
@ -20,7 +20,7 @@ engine - wasm | better
*/
function SqlTiddlerDatabase(options) {
options = options || {};
const SqlEngine = require("$:/plugins/tiddlywiki/multiwikiserver/store/sql-engine.js").SqlEngine;
const SqlEngine = require("$:/plugins/tiddlywiki/multiwikiserver/modules/store/sql-engine.js").SqlEngine;
this.engine = new SqlEngine({
databasePath: options.databasePath,
engine: options.engine
@ -1041,7 +1041,7 @@ SqlTiddlerDatabase.prototype.findUserBySessionId = function(sessionId) {
const lastAccessed = new Date(sessionResult.last_accessed);
const expirationTime = 24 * 60 * 60 * 1000; // 24 hours in milliseconds
if (new Date() - lastAccessed > expirationTime) {
if (new Date().getTime() - lastAccessed.getTime() > expirationTime) {
// Session has expired
this.deleteSession(sessionId);
return null;

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/store/sql-tiddler-store.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/store/sql-tiddler-store.js
type: application/javascript
module-type: library
@ -31,7 +31,7 @@ function SqlTiddlerStore(options) {
this.eventOutstanding = {}; // Hashmap by type of boolean true of outstanding events
// Create the database
this.databasePath = options.databasePath || ":memory:";
var SqlTiddlerDatabase = require("$:/plugins/tiddlywiki/multiwikiserver/store/sql-tiddler-database.js").SqlTiddlerDatabase;
var SqlTiddlerDatabase = require("$:/plugins/tiddlywiki/multiwikiserver/modules/store/sql-tiddler-database.js").SqlTiddlerDatabase;
this.sqlTiddlerDatabase = new SqlTiddlerDatabase({
databasePath: this.databasePath,
engine: options.engine
@ -201,7 +201,7 @@ SqlTiddlerStore.prototype.saveTiddlersFromPath = function(tiddler_files_path,bag
// Save the tiddlers
for(const tiddlersFromFile of tiddlersFromPath) {
for(const tiddler of tiddlersFromFile.tiddlers) {
self.saveBagTiddler(tiddler,bag_name,null);
self.saveBagTiddler(tiddler,bag_name);
}
}
});

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/store/tests-sql-tiddler-database.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/store/tests-sql-tiddler-database.js
type: application/javascript
tags: [[$:/tags/test-spec]]
@ -27,7 +27,7 @@ describe("SQL tiddler database with better-sqlite3", function() {
function runSqlDatabaseTests(engine) {
// Create and initialise the tiddler store
var SqlTiddlerDatabase = require("$:/plugins/tiddlywiki/multiwikiserver/store/sql-tiddler-database.js").SqlTiddlerDatabase;
var SqlTiddlerDatabase = require("$:/plugins/tiddlywiki/multiwikiserver/modules/store/sql-tiddler-database.js").SqlTiddlerDatabase;
const sqlTiddlerDatabase = new SqlTiddlerDatabase({
engine: engine
});

View File

@ -1,5 +1,5 @@
/*\
title: $:/plugins/tiddlywiki/multiwikiserver/store/tests-sql-tiddler-store.js
title: $:/plugins/tiddlywiki/multiwikiserver/modules/store/tests-sql-tiddler-store.js
type: application/javascript
tags: [[$:/tags/test-spec]]
@ -22,7 +22,7 @@ describe("SQL tiddler store with better-sqlite3", function() {
});
function runSqlStoreTests(engine) {
var SqlTiddlerStore = require("$:/plugins/tiddlywiki/multiwikiserver/store/sql-tiddler-store.js").SqlTiddlerStore;
var SqlTiddlerStore = require("$:/plugins/tiddlywiki/multiwikiserver/modules/store/sql-tiddler-store.js").SqlTiddlerStore;
var store;

View File

@ -11,7 +11,7 @@ if(typeof window === 'undefined' && typeof process !== 'undefined' && process.ve
var fs = require('fs');
var path = require('path');
var assert = require('assert');
var AttachmentStore = require('$:/plugins/tiddlywiki/multiwikiserver/store/attachments.js').AttachmentStore;
var AttachmentStore = require('$:/plugins/tiddlywiki/multiwikiserver/modules/store/attachments.js').AttachmentStore;
const {Buffer} = require('buffer');
function generateFileWithSize(filePath, sizeInBytes) {

View File

@ -4,11 +4,15 @@ type: application/javascript
\*/
// @ts-check
(function () {
document.addEventListener("click", function (event) {
/** @type {HTMLElement|null} */
var dropdown = document.querySelector(".mws-admin-dropdown-content");
/** @type {HTMLElement|null} */
var dropbtn = document.querySelector(".mws-admin-dropbtn");
if(!event.target.matches(".mws-admin-dropbtn")) {
// Ensure event.target is an Element
if (!(event.target instanceof Element) || !event.target.matches(".mws-admin-dropbtn")) {
if(dropdown.style.display === "block") {
dropdown.style.display = "none";
}