Files
marketing-app/server/node_modules/@tootallnate/once/dist/index.js
fahed 35d84b6bff Marketing Hub: RBAC, i18n (AR/EN), tasks overhaul, team/user merge, tutorial
Features:
- Full RBAC with 3 roles (superadmin/manager/contributor)
- Ownership tracking on posts, tasks, campaigns, projects
- Task system: assign to anyone, filter combobox, visibility scoping
- Team members merged into users table (single source of truth)
- Post thumbnails on kanban cards from attachments
- Publication link validation before publishing
- Interactive onboarding tutorial with Settings restart
- Full Arabic/English i18n with RTL layout support
- Language toggle in sidebar, IBM Plex Sans Arabic font
- Brand-based visibility filtering for non-superadmins
- Manager can only create contributors
- Profile completion flow for new users
- Cookie-based sessions (express-session + SQLite)
2026-02-08 20:46:58 +03:00

39 lines
1.1 KiB
JavaScript

"use strict";
function noop() { }
function once(emitter, name) {
const o = once.spread(emitter, name);
const r = o.then((args) => args[0]);
r.cancel = o.cancel;
return r;
}
(function (once) {
function spread(emitter, name) {
let c = null;
const p = new Promise((resolve, reject) => {
function cancel() {
emitter.removeListener(name, onEvent);
emitter.removeListener('error', onError);
p.cancel = noop;
}
function onEvent(...args) {
cancel();
resolve(args);
}
function onError(err) {
cancel();
reject(err);
}
c = cancel;
emitter.on(name, onEvent);
emitter.on('error', onError);
});
if (!c) {
throw new TypeError('Could not get `cancel()` function');
}
p.cancel = c;
return p;
}
once.spread = spread;
})(once || (once = {}));
module.exports = once;
//# sourceMappingURL=index.js.map