roamjs-components 0.80.2 → 0.81.0

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.
package/hooks/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
1
  export { default as useArrowKeyDown } from "./useArrowKeyDown";
2
- export { default as useRoamJSTokenWarning } from "./useRoamJSTokenWarning";
3
2
  export { default as useSubTree } from "./useSubTree";
package/hooks/index.js CHANGED
@@ -3,11 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useSubTree = exports.useRoamJSTokenWarning = exports.useArrowKeyDown = void 0;
6
+ exports.useSubTree = exports.useArrowKeyDown = void 0;
7
7
  var useArrowKeyDown_1 = require("./useArrowKeyDown");
8
8
  Object.defineProperty(exports, "useArrowKeyDown", { enumerable: true, get: function () { return __importDefault(useArrowKeyDown_1).default; } });
9
- var useRoamJSTokenWarning_1 = require("./useRoamJSTokenWarning");
10
- Object.defineProperty(exports, "useRoamJSTokenWarning", { enumerable: true, get: function () { return __importDefault(useRoamJSTokenWarning_1).default; } });
11
9
  var useSubTree_1 = require("./useSubTree");
12
10
  Object.defineProperty(exports, "useSubTree", { enumerable: true, get: function () { return __importDefault(useSubTree_1).default; } });
13
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":";;;;;;AAAA,qDAA+D;AAAtD,mIAAA,OAAO,OAAmB;AACnC,iEAA2E;AAAlE,+IAAA,OAAO,OAAyB;AACzC,2CAAqD;AAA5C,yHAAA,OAAO,OAAc","sourcesContent":["export { default as useArrowKeyDown } from \"./useArrowKeyDown\";\nexport { default as useRoamJSTokenWarning } from \"./useRoamJSTokenWarning\";\nexport { default as useSubTree } from \"./useSubTree\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":";;;;;;AAAA,qDAA+D;AAAtD,mIAAA,OAAO,OAAmB;AACnC,2CAAqD;AAA5C,yHAAA,OAAO,OAAc","sourcesContent":["export { default as useArrowKeyDown } from \"./useArrowKeyDown\";\nexport { default as useSubTree } from \"./useSubTree\";\n"]}
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "roamjs-components",
3
3
  "description": "Expansive toolset, utilities, & components for developing RoamJS extensions.",
4
- "version": "0.80.2",
4
+ "version": "0.81.0",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
7
7
  "scripts": {
8
+ "postinstall": "patch-package",
8
9
  "format": "prettier --write \"src/**/*.tsx\"",
9
10
  "lint": "eslint . --ext .ts,.tsx",
10
11
  "build": "tsc",
@@ -19,6 +20,7 @@
19
20
  "@blueprintjs/core": "3.50.4",
20
21
  "@blueprintjs/datetime": "3.23.14",
21
22
  "@blueprintjs/select": "3.18.6",
23
+ "@samepage/scripts": "^0.74.2",
22
24
  "@types/crypto-js": "4.1.1",
23
25
  "@types/cytoscape": "^3.19.9",
24
26
  "@types/file-saver": "2.0.5",
@@ -45,7 +47,6 @@
45
47
  "use-sync-external-store": "^1.2.0"
46
48
  },
47
49
  "dependencies": {
48
- "@samepage/scripts": "^0.71.10",
49
50
  "@testing-library/react": "^12.1.5",
50
51
  "aws-sdk-plus": "^0.5.3",
51
52
  "color": "^4.0.1",
@@ -13,7 +13,7 @@ const opts = () => ({
13
13
  Authorization: `token ${process.env.GITHUB_TOKEN}`,
14
14
  },
15
15
  });
16
- const publishToRoamDepot = ({ owner = process.env.GITHUB_REPOSITORY_OWNER, repo = path_1.default.basename(process.cwd()), branch = repo, proxy = owner, } = {}) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
16
+ const publishToRoamDepot = ({ owner = process.env.GITHUB_REPOSITORY_OWNER, repo = path_1.default.basename(process.cwd()), branch = repo, proxy = process.env.ROAMJS_PROXY || owner, } = {}) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
17
17
  console.log("Attempting to publish to Roam Depot...");
18
18
  const pr = yield axios_1.default
19
19
  .get(`https://api.github.com/repos/Roam-Research/roam-depot/pulls?head=${owner}:${branch}`, opts())
@@ -1 +1 @@
1
- {"version":3,"file":"publishToRoamDepot.js","sourceRoot":"","sources":["../../src/scripts/publishToRoamDepot.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport axios from \"axios\";\nimport dotenv from \"dotenv\";\nimport { execSync } from \"child_process\";\ndotenv.config();\n\nconst opts = () => ({\n headers: {\n Accept: \"application/vnd.github+json\",\n Authorization: `token ${process.env.GITHUB_TOKEN}`,\n },\n});\n\nconst publishToRoamDepot = async ({\n owner = process.env.GITHUB_REPOSITORY_OWNER,\n repo = path.basename(process.cwd()),\n branch = repo,\n proxy = owner,\n}: {\n repo?: string;\n owner?: string;\n branch?: string;\n proxy?: string;\n} = {}) => {\n console.log(\"Attempting to publish to Roam Depot...\");\n const pr = await axios\n .get(\n `https://api.github.com/repos/Roam-Research/roam-depot/pulls?head=${owner}:${branch}`,\n opts()\n )\n .then((r) => r.data[0]?.html_url);\n const cwd = process.cwd();\n process.chdir(\"/tmp\");\n execSync(\n `git clone https://${owner}:${process.env.GITHUB_TOKEN}@github.com/${owner}/roam-depot.git`,\n { stdio: \"inherit\" }\n );\n process.chdir(\"roam-depot\");\n const manifestFile = `extensions/${proxy}/${repo.replace(\n /^roam(js)?-/,\n \"\"\n )}.json`;\n const packageJson = JSON.parse(\n fs.readFileSync(`${cwd}/package.json`).toString()\n );\n const { name: authorName, email: authorEmail } = await axios\n .get<{ name: string; email: string }>(`https://api.github.com/user`, opts())\n .then((r) => r.data)\n .catch(() => packageJson.author || {});\n execSync(`git config --global user.email \"${authorEmail}\"`, {\n stdio: \"inherit\",\n });\n execSync(`git config --global user.name \"${authorName}\"`, {\n stdio: \"inherit\",\n });\n execSync(`git remote add roam https://github.com/Roam-Research/roam-depot`, {\n stdio: \"inherit\",\n });\n execSync(`git pull roam main --rebase`, { stdio: \"inherit\" });\n execSync(`git push origin main -f`, { stdio: \"inherit\" });\n if (pr) {\n console.log(\"Found existing PR\");\n execSync(`git checkout ${branch}`, { stdio: \"inherit\" });\n execSync(`git rebase origin/main`, { stdio: \"inherit\" });\n const manifest = fs.readFileSync(manifestFile).toString();\n fs.writeFileSync(\n manifestFile,\n manifest.replace(\n /\"source_commit\": \"[a-f0-9]+\",/,\n `\"source_commit\": \"${process.env.GITHUB_SHA}\",`\n )\n );\n console.log(\n \"Editing\",\n manifestFile,\n \"from\",\n manifest,\n \"to\",\n process.env.GITHUB_SHA\n );\n execSync(\"git add --all\", { stdio: \"inherit\" });\n execSync(`git commit -m \"Version ${packageJson.version}\"`, {\n stdio: \"inherit\",\n });\n execSync(`git push origin ${branch} -f`, { stdio: \"inherit\" });\n console.log(`Updated pull request: ${pr}`);\n } else {\n console.log(\"Creating new PR\");\n execSync(`git checkout -b ${branch}`, { stdio: \"inherit\" });\n if (!fs.existsSync(`extensions/${proxy}`))\n fs.mkdirSync(`extensions/${proxy}`);\n const name = repo\n .replace(/^roam(js)?-/, \"\")\n .split(\"-\")\n .map((s) => `${s.slice(0, 1).toUpperCase()}${s.slice(1)}`)\n .join(\" \");\n if (fs.existsSync(manifestFile)) {\n const manifest = fs.readFileSync(manifestFile).toString();\n fs.writeFileSync(\n manifestFile,\n manifest.replace(\n /\"source_commit\": \"[a-f0-9]+\",/,\n `\"source_commit\": \"${process.env.GITHUB_SHA}\",`\n )\n );\n } else {\n fs.writeFileSync(\n manifestFile,\n JSON.stringify(\n {\n name,\n short_description:\n packageJson?.description ||\n \"Description missing from package json\",\n author: authorName,\n tags: packageJson?.tags || [],\n source_url: `https://github.com/${owner}/${repo}`,\n source_repo: `https://github.com/${owner}/${repo}.git`,\n source_commit: process.env.GITHUB_SHA,\n stripe_account: packageJson.stripe,\n },\n null,\n 4\n ) + \"\\n\"\n );\n }\n const title = `${name}: Version ${packageJson.version}`;\n execSync(\"git add --all\", { stdio: \"inherit\" });\n execSync(`git commit -m \"${title}\"`, { stdio: \"inherit\" });\n execSync(`git push origin ${branch} -f`, { stdio: \"inherit\" });\n const url = await axios\n .post(\n `https://api.github.com/repos/Roam-Research/roam-depot/pulls`,\n {\n head: `${owner}:${branch}`,\n base: \"main\",\n title,\n },\n opts()\n )\n .then((r) => r.data.html_url)\n .catch((e) => Promise.reject(e.response.data || e.message));\n console.log(`Created pull request: ${url}`);\n }\n process.chdir(cwd);\n};\n\nexport default publishToRoamDepot;\n"]}
1
+ {"version":3,"file":"publishToRoamDepot.js","sourceRoot":"","sources":["../../src/scripts/publishToRoamDepot.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport axios from \"axios\";\nimport dotenv from \"dotenv\";\nimport { execSync } from \"child_process\";\ndotenv.config();\n\nconst opts = () => ({\n headers: {\n Accept: \"application/vnd.github+json\",\n Authorization: `token ${process.env.GITHUB_TOKEN}`,\n },\n});\n\nconst publishToRoamDepot = async ({\n owner = process.env.GITHUB_REPOSITORY_OWNER,\n repo = path.basename(process.cwd()),\n branch = repo,\n proxy = process.env.ROAMJS_PROXY || owner,\n}: {\n repo?: string;\n owner?: string;\n branch?: string;\n proxy?: string;\n} = {}) => {\n console.log(\"Attempting to publish to Roam Depot...\");\n const pr = await axios\n .get(\n `https://api.github.com/repos/Roam-Research/roam-depot/pulls?head=${owner}:${branch}`,\n opts()\n )\n .then((r) => r.data[0]?.html_url);\n const cwd = process.cwd();\n process.chdir(\"/tmp\");\n execSync(\n `git clone https://${owner}:${process.env.GITHUB_TOKEN}@github.com/${owner}/roam-depot.git`,\n { stdio: \"inherit\" }\n );\n process.chdir(\"roam-depot\");\n const manifestFile = `extensions/${proxy}/${repo.replace(\n /^roam(js)?-/,\n \"\"\n )}.json`;\n const packageJson = JSON.parse(\n fs.readFileSync(`${cwd}/package.json`).toString()\n );\n const { name: authorName, email: authorEmail } = await axios\n .get<{ name: string; email: string }>(`https://api.github.com/user`, opts())\n .then((r) => r.data)\n .catch(() => packageJson.author || {});\n execSync(`git config --global user.email \"${authorEmail}\"`, {\n stdio: \"inherit\",\n });\n execSync(`git config --global user.name \"${authorName}\"`, {\n stdio: \"inherit\",\n });\n execSync(`git remote add roam https://github.com/Roam-Research/roam-depot`, {\n stdio: \"inherit\",\n });\n execSync(`git pull roam main --rebase`, { stdio: \"inherit\" });\n execSync(`git push origin main -f`, { stdio: \"inherit\" });\n if (pr) {\n console.log(\"Found existing PR\");\n execSync(`git checkout ${branch}`, { stdio: \"inherit\" });\n execSync(`git rebase origin/main`, { stdio: \"inherit\" });\n const manifest = fs.readFileSync(manifestFile).toString();\n fs.writeFileSync(\n manifestFile,\n manifest.replace(\n /\"source_commit\": \"[a-f0-9]+\",/,\n `\"source_commit\": \"${process.env.GITHUB_SHA}\",`\n )\n );\n console.log(\n \"Editing\",\n manifestFile,\n \"from\",\n manifest,\n \"to\",\n process.env.GITHUB_SHA\n );\n execSync(\"git add --all\", { stdio: \"inherit\" });\n execSync(`git commit -m \"Version ${packageJson.version}\"`, {\n stdio: \"inherit\",\n });\n execSync(`git push origin ${branch} -f`, { stdio: \"inherit\" });\n console.log(`Updated pull request: ${pr}`);\n } else {\n console.log(\"Creating new PR\");\n execSync(`git checkout -b ${branch}`, { stdio: \"inherit\" });\n if (!fs.existsSync(`extensions/${proxy}`))\n fs.mkdirSync(`extensions/${proxy}`);\n const name = repo\n .replace(/^roam(js)?-/, \"\")\n .split(\"-\")\n .map((s) => `${s.slice(0, 1).toUpperCase()}${s.slice(1)}`)\n .join(\" \");\n if (fs.existsSync(manifestFile)) {\n const manifest = fs.readFileSync(manifestFile).toString();\n fs.writeFileSync(\n manifestFile,\n manifest.replace(\n /\"source_commit\": \"[a-f0-9]+\",/,\n `\"source_commit\": \"${process.env.GITHUB_SHA}\",`\n )\n );\n } else {\n fs.writeFileSync(\n manifestFile,\n JSON.stringify(\n {\n name,\n short_description:\n packageJson?.description ||\n \"Description missing from package json\",\n author: authorName,\n tags: packageJson?.tags || [],\n source_url: `https://github.com/${owner}/${repo}`,\n source_repo: `https://github.com/${owner}/${repo}.git`,\n source_commit: process.env.GITHUB_SHA,\n stripe_account: packageJson.stripe,\n },\n null,\n 4\n ) + \"\\n\"\n );\n }\n const title = `${name}: Version ${packageJson.version}`;\n execSync(\"git add --all\", { stdio: \"inherit\" });\n execSync(`git commit -m \"${title}\"`, { stdio: \"inherit\" });\n execSync(`git push origin ${branch} -f`, { stdio: \"inherit\" });\n const url = await axios\n .post(\n `https://api.github.com/repos/Roam-Research/roam-depot/pulls`,\n {\n head: `${owner}:${branch}`,\n base: \"main\",\n title,\n },\n opts()\n )\n .then((r) => r.data.html_url)\n .catch((e) => Promise.reject(e.response.data || e.message));\n console.log(`Created pull request: ${url}`);\n }\n process.chdir(cwd);\n};\n\nexport default publishToRoamDepot;\n"]}
@@ -123,11 +123,13 @@ const runExtension = (run) => {
123
123
  .then(() => (0, Toast_1.default)({
124
124
  id: "roamjs-extension-error",
125
125
  content: `Failed to load ${extensionId} extension. An Error Report has been sent to the SamePage team.`,
126
+ intent: "danger",
126
127
  }))
127
128
  .catch(() => {
128
129
  (0, Toast_1.default)({
129
130
  id: "roamjs-email-error",
130
131
  content: `Failed to load ${extensionId} extension. The Error Report also failed to send to the SamePage team, please reach out to them directly at support@samepage.network.`,
132
+ intent: "danger",
131
133
  });
132
134
  });
133
135
  });
@@ -1 +1 @@
1
- {"version":3,"file":"runExtension.js","sourceRoot":"","sources":["../../src/util/runExtension.ts"],"names":[],"mappings":"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","sourcesContent":["import addStyle from \"../dom/addStyle\";\nimport { OnloadArgs } from \"../types/native\";\nimport ReactDOM from \"react-dom\";\nimport {\n getNodeEnv,\n getRoamJSExtensionIdEnv,\n getRoamJSVersionEnv,\n} from \"./env\";\nimport type { Registry } from \"../types\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nimport { provideExtensionApi } from \"./extensionApiContext\";\nimport apiPost from \"./apiPost\";\nimport renderToast from \"../components/Toast\";\n\ntype RunReturn =\n | void\n | (Partial<Registry> & { unload?: () => void })\n | (() => void);\n\ntype RunExtension = (args: OnloadArgs) => Promise<RunReturn>;\n\nconst runExtension = (\n run: RunExtension\n): { onload: (args: OnloadArgs) => void; onunload: () => void } => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore React17 shim\n window.React.useSyncExternalStore = useSyncExternalStore;\n let unload: (() => void) | undefined;\n const extensionId = getRoamJSExtensionIdEnv();\n const registry: Registry = {\n elements: [],\n reactRoots: [],\n observers: [],\n domListeners: [],\n commands: [],\n timeouts: [],\n };\n const register = (res: Partial<Registry>) => {\n Object.keys(res).forEach((k) => {\n const key = k as keyof Registry;\n const val = res[key];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore this is actually safe, but dont know how to coerce\n registry[key].push(...val);\n });\n };\n const registerListener = ((e: CustomEvent) => {\n const res = e.detail as Partial<Registry>;\n register(res);\n }) as EventListener;\n document.body.addEventListener(\n `roamjs:${extensionId}:register`,\n registerListener\n );\n registry.domListeners.push({\n listener: registerListener,\n el: document.body,\n type: `roamjs:${extensionId}:register`,\n });\n const unregisterListener = ((e: CustomEvent) => {\n const res = e.detail as Partial<Registry>;\n Object.keys(res).forEach((k) => {\n const key = k as keyof Registry;\n const val = res[key];\n if (val) {\n val.forEach((el) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore this is actually safe, but dont know how to coerce\n const idx = registry[key].indexOf(el);\n if (idx > -1) {\n registry[key].splice(idx, 1);\n }\n });\n }\n });\n }) as EventListener;\n document.body.addEventListener(\n `roamjs:${extensionId}:unregister`,\n unregisterListener\n );\n registry.domListeners.push({\n listener: unregisterListener,\n el: document.body,\n type: `roamjs:${extensionId}:unregister`,\n });\n\n const onload = (args: OnloadArgs) => {\n if (window.roamjs?.loaded?.has?.(extensionId)) {\n return;\n }\n provideExtensionApi(args.extensionAPI);\n window.roamjs = {\n loaded: window.roamjs?.loaded || new Set(),\n extension: window.roamjs?.extension || {},\n version: window.roamjs?.version || {},\n actions: {},\n };\n window.roamjs.loaded.add(extensionId);\n window.roamjs.version[extensionId] = getRoamJSVersionEnv();\n\n registry.elements.push(\n addStyle(\n `.bp3-button:focus {\n outline-width: 2px;\n }`,\n \"roamjs-default\"\n )\n );\n\n run(args)\n .then((res) => {\n if (typeof res === \"function\") {\n unload = res;\n } else if (typeof res === \"object\") {\n const { unload: resUnload, ...registry } = res;\n register(registry);\n unload = resUnload;\n }\n const globalApi = window.roamjs.extension[extensionId];\n if (getNodeEnv() === \"development\") {\n if (globalApi) globalApi.extensionAPI = args.extensionAPI;\n else\n window.roamjs.extension[extensionId] = {\n extensionAPI: args.extensionAPI,\n };\n }\n document.body.dispatchEvent(new Event(`roamjs:${extensionId}:loaded`));\n })\n .catch((e) => {\n const error = e as Error;\n apiPost({\n domain: \"https://api.samepage.network\",\n path: \"errors\",\n data: {\n method: \"extension-error\",\n type: \"RoamJS Extension Failed to Load\",\n data: {\n extensionId,\n settings: args.extensionAPI.settings.getAll(),\n roamDepotVersion: args.extension.version,\n },\n message: error.message,\n stack: error.stack,\n version: process.env.VERSION,\n },\n })\n .then(() =>\n renderToast({\n id: \"roamjs-extension-error\",\n content: `Failed to load ${extensionId} extension. An Error Report has been sent to the SamePage team.`,\n })\n )\n .catch(() => {\n renderToast({\n id: \"roamjs-email-error\",\n content: `Failed to load ${extensionId} extension. The Error Report also failed to send to the SamePage team, please reach out to them directly at support@samepage.network.`,\n });\n });\n });\n };\n\n const onunload = () => {\n registry.elements.forEach((e) => e.remove());\n registry.reactRoots.forEach((e) => {\n ReactDOM.unmountComponentAtNode(e);\n e.remove();\n });\n registry.observers.forEach((e) => e.disconnect());\n registry.domListeners.forEach((e) =>\n e.el.removeEventListener(e.type, e.listener)\n );\n registry.commands.forEach((label) =>\n window.roamAlphaAPI.ui.commandPalette.removeCommand({ label })\n );\n registry.timeouts.forEach((e) => window.clearTimeout(e.timeout));\n\n delete window.roamjs?.extension[extensionId];\n delete window.roamjs?.version[extensionId];\n window.roamjs?.loaded.delete(extensionId);\n if (!window.roamjs?.loaded.size) {\n document.getElementById(\"roamjs-default\")?.remove();\n }\n unload?.();\n };\n return {\n onload,\n onunload,\n };\n};\n\nexport default runExtension;\n"]}
1
+ {"version":3,"file":"runExtension.js","sourceRoot":"","sources":["../../src/util/runExtension.ts"],"names":[],"mappings":"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","sourcesContent":["import addStyle from \"../dom/addStyle\";\nimport { OnloadArgs } from \"../types/native\";\nimport ReactDOM from \"react-dom\";\nimport {\n getNodeEnv,\n getRoamJSExtensionIdEnv,\n getRoamJSVersionEnv,\n} from \"./env\";\nimport type { Registry } from \"../types\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nimport { provideExtensionApi } from \"./extensionApiContext\";\nimport apiPost from \"./apiPost\";\nimport renderToast from \"../components/Toast\";\n\ntype RunReturn =\n | void\n | (Partial<Registry> & { unload?: () => void })\n | (() => void);\n\ntype RunExtension = (args: OnloadArgs) => Promise<RunReturn>;\n\nconst runExtension = (\n run: RunExtension\n): { onload: (args: OnloadArgs) => void; onunload: () => void } => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore React17 shim\n window.React.useSyncExternalStore = useSyncExternalStore;\n let unload: (() => void) | undefined;\n const extensionId = getRoamJSExtensionIdEnv();\n const registry: Registry = {\n elements: [],\n reactRoots: [],\n observers: [],\n domListeners: [],\n commands: [],\n timeouts: [],\n };\n const register = (res: Partial<Registry>) => {\n Object.keys(res).forEach((k) => {\n const key = k as keyof Registry;\n const val = res[key];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore this is actually safe, but dont know how to coerce\n registry[key].push(...val);\n });\n };\n const registerListener = ((e: CustomEvent) => {\n const res = e.detail as Partial<Registry>;\n register(res);\n }) as EventListener;\n document.body.addEventListener(\n `roamjs:${extensionId}:register`,\n registerListener\n );\n registry.domListeners.push({\n listener: registerListener,\n el: document.body,\n type: `roamjs:${extensionId}:register`,\n });\n const unregisterListener = ((e: CustomEvent) => {\n const res = e.detail as Partial<Registry>;\n Object.keys(res).forEach((k) => {\n const key = k as keyof Registry;\n const val = res[key];\n if (val) {\n val.forEach((el) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore this is actually safe, but dont know how to coerce\n const idx = registry[key].indexOf(el);\n if (idx > -1) {\n registry[key].splice(idx, 1);\n }\n });\n }\n });\n }) as EventListener;\n document.body.addEventListener(\n `roamjs:${extensionId}:unregister`,\n unregisterListener\n );\n registry.domListeners.push({\n listener: unregisterListener,\n el: document.body,\n type: `roamjs:${extensionId}:unregister`,\n });\n\n const onload = (args: OnloadArgs) => {\n if (window.roamjs?.loaded?.has?.(extensionId)) {\n return;\n }\n provideExtensionApi(args.extensionAPI);\n window.roamjs = {\n loaded: window.roamjs?.loaded || new Set(),\n extension: window.roamjs?.extension || {},\n version: window.roamjs?.version || {},\n actions: {},\n };\n window.roamjs.loaded.add(extensionId);\n window.roamjs.version[extensionId] = getRoamJSVersionEnv();\n\n registry.elements.push(\n addStyle(\n `.bp3-button:focus {\n outline-width: 2px;\n }`,\n \"roamjs-default\"\n )\n );\n\n run(args)\n .then((res) => {\n if (typeof res === \"function\") {\n unload = res;\n } else if (typeof res === \"object\") {\n const { unload: resUnload, ...registry } = res;\n register(registry);\n unload = resUnload;\n }\n const globalApi = window.roamjs.extension[extensionId];\n if (getNodeEnv() === \"development\") {\n if (globalApi) globalApi.extensionAPI = args.extensionAPI;\n else\n window.roamjs.extension[extensionId] = {\n extensionAPI: args.extensionAPI,\n };\n }\n document.body.dispatchEvent(new Event(`roamjs:${extensionId}:loaded`));\n })\n .catch((e) => {\n const error = e as Error;\n apiPost({\n domain: \"https://api.samepage.network\",\n path: \"errors\",\n data: {\n method: \"extension-error\",\n type: \"RoamJS Extension Failed to Load\",\n data: {\n extensionId,\n settings: args.extensionAPI.settings.getAll(),\n roamDepotVersion: args.extension.version,\n },\n message: error.message,\n stack: error.stack,\n version: process.env.VERSION,\n },\n })\n .then(() =>\n renderToast({\n id: \"roamjs-extension-error\",\n content: `Failed to load ${extensionId} extension. An Error Report has been sent to the SamePage team.`,\n intent: \"danger\",\n })\n )\n .catch(() => {\n renderToast({\n id: \"roamjs-email-error\",\n content: `Failed to load ${extensionId} extension. The Error Report also failed to send to the SamePage team, please reach out to them directly at support@samepage.network.`,\n intent: \"danger\",\n });\n });\n });\n };\n\n const onunload = () => {\n registry.elements.forEach((e) => e.remove());\n registry.reactRoots.forEach((e) => {\n ReactDOM.unmountComponentAtNode(e);\n e.remove();\n });\n registry.observers.forEach((e) => e.disconnect());\n registry.domListeners.forEach((e) =>\n e.el.removeEventListener(e.type, e.listener)\n );\n registry.commands.forEach((label) =>\n window.roamAlphaAPI.ui.commandPalette.removeCommand({ label })\n );\n registry.timeouts.forEach((e) => window.clearTimeout(e.timeout));\n\n delete window.roamjs?.extension[extensionId];\n delete window.roamjs?.version[extensionId];\n window.roamjs?.loaded.delete(extensionId);\n if (!window.roamjs?.loaded.size) {\n document.getElementById(\"roamjs-default\")?.remove();\n }\n unload?.();\n };\n return {\n onload,\n onunload,\n };\n};\n\nexport default runExtension;\n"]}
@@ -1,11 +0,0 @@
1
- /// <reference types="react" />
2
- declare type Props = {
3
- onEnter?: (token: string) => void;
4
- };
5
- declare const TokenDialog: ({ onClose, onEnter }: {
6
- onClose: () => void;
7
- } & Props) => JSX.Element;
8
- export declare const render: (props: Props) => (() => void) | undefined;
9
- export declare const addTokenDialogCommand: (props?: Props) => Promise<void>;
10
- export declare const checkRoamJSTokenWarning: () => Promise<string>;
11
- export default TokenDialog;
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkRoamJSTokenWarning = exports.addTokenDialogCommand = exports.render = void 0;
4
- const tslib_1 = require("tslib");
5
- const core_1 = require("@blueprintjs/core");
6
- const react_1 = tslib_1.__importStar(require("react"));
7
- const createOverlayRender_1 = tslib_1.__importDefault(require("../util/createOverlayRender"));
8
- const setInputSetting_1 = tslib_1.__importDefault(require("../util/setInputSetting"));
9
- const getToken_1 = tslib_1.__importDefault(require("../util/getToken"));
10
- const getPageUidByPageTitle_1 = tslib_1.__importDefault(require("../queries/getPageUidByPageTitle"));
11
- const localStorageRemove_1 = tslib_1.__importDefault(require("../util/localStorageRemove"));
12
- const localStorageSet_1 = tslib_1.__importDefault(require("../util/localStorageSet"));
13
- const createPage_1 = tslib_1.__importDefault(require("../writes/createPage"));
14
- const SimpleAlert_1 = require("../components/SimpleAlert");
15
- const getCurrentUserEmail_1 = tslib_1.__importDefault(require("../queries/getCurrentUserEmail"));
16
- const apiGet_1 = tslib_1.__importDefault(require("../util/apiGet"));
17
- const TokenDialog = ({ onClose, onEnter }) => {
18
- const [token, setToken] = (0, react_1.useState)(getToken_1.default);
19
- const [useLocal, setUseLocal] = (0, react_1.useState)(true);
20
- const dialogOnClose = (0, react_1.useCallback)(() => {
21
- onClose();
22
- onEnter === null || onEnter === void 0 ? void 0 : onEnter("");
23
- }, [onClose, onEnter]);
24
- const onSubmit = (0, react_1.useCallback)(() => {
25
- const pageUid = (0, getPageUidByPageTitle_1.default)("roam/js/roamjs");
26
- return (pageUid
27
- ? Promise.resolve(pageUid)
28
- : (0, createPage_1.default)({ title: "roam/js/roamjs", tree: [{ text: "token" }] })).then(() => {
29
- if (useLocal) {
30
- (0, localStorageSet_1.default)(`token`, token);
31
- (0, setInputSetting_1.default)({
32
- blockUid: pageUid,
33
- key: "token",
34
- value: "",
35
- });
36
- }
37
- else {
38
- (0, localStorageRemove_1.default)(`token`);
39
- (0, setInputSetting_1.default)({
40
- blockUid: pageUid,
41
- key: "token",
42
- value: token,
43
- });
44
- }
45
- onClose();
46
- onEnter === null || onEnter === void 0 ? void 0 : onEnter(token);
47
- });
48
- }, [token, useLocal, onClose]);
49
- const onKeyDown = (0, react_1.useCallback)((e) => {
50
- if (e.key === "Enter" &&
51
- !e.shiftKey &&
52
- !e.altKey &&
53
- !e.metaKey &&
54
- !e.ctrlKey &&
55
- token) {
56
- onSubmit();
57
- }
58
- }, [onSubmit, token]);
59
- return (react_1.default.createElement(react_1.default.Fragment, null,
60
- react_1.default.createElement(core_1.Dialog, { isOpen: true, title: `Add RoamJS Token`, onClose: dialogOnClose, canOutsideClickClose: true, canEscapeKeyClose: true, autoFocus: false },
61
- react_1.default.createElement("div", { className: core_1.Classes.DIALOG_BODY, onKeyDown: (e) => e.stopPropagation() },
62
- react_1.default.createElement(core_1.Label, null,
63
- "RoamJS Token",
64
- react_1.default.createElement(core_1.InputGroup, { value: token, onChange: (e) => setToken(e.target.value), onKeyDown: onKeyDown, type: "password" })),
65
- react_1.default.createElement(core_1.Checkbox, { label: "Store Locally", checked: useLocal, onChange: (e) => setUseLocal(e.target.checked) })),
66
- react_1.default.createElement("div", { className: core_1.Classes.DIALOG_FOOTER },
67
- react_1.default.createElement("div", { className: core_1.Classes.DIALOG_FOOTER_ACTIONS },
68
- react_1.default.createElement(core_1.Button, { text: "Cancel", onClick: dialogOnClose }),
69
- react_1.default.createElement(core_1.Button, { text: "Save", intent: core_1.Intent.PRIMARY, onClick: onSubmit }))))));
70
- };
71
- exports.render = (0, createOverlayRender_1.default)("token-dialog", TokenDialog);
72
- const addTokenDialogCommand = (props = {}) => window.roamAlphaAPI.ui.commandPalette.addCommand({
73
- label: "Set RoamJS Token",
74
- callback: () => (0, exports.render)(props),
75
- });
76
- exports.addTokenDialogCommand = addTokenDialogCommand;
77
- const checkRoamJSTokenWarning = () => {
78
- const token = (0, getToken_1.default)();
79
- if (!token) {
80
- return new Promise((resolve) => (0, apiGet_1.default)({
81
- path: `users?email=${encodeURIComponent((0, getCurrentUserEmail_1.default)())}`,
82
- anonymous: true,
83
- }).then((r) => {
84
- return (0, SimpleAlert_1.render)({
85
- content: `You need to ${r.exists
86
- ? ""
87
- : "sign up at [https://roamjs.com/signup](https://roamjs.com/signup) and "}add your RoamJS token to Roam to use this extension. You will only need to do this once per graph as this token will authorize you for all premium extensions.\n\nGrab your token from [https://roamjs.com/user/#Extensions](https://roamjs.com/user/#Extensions).`,
88
- onConfirm: () => (0, exports.render)({ onEnter: resolve }),
89
- onCancel: () => resolve(""),
90
- externalLink: true,
91
- });
92
- }));
93
- }
94
- else {
95
- return Promise.resolve(token);
96
- }
97
- };
98
- exports.checkRoamJSTokenWarning = checkRoamJSTokenWarning;
99
- exports.default = TokenDialog;
100
- //# sourceMappingURL=TokenDialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TokenDialog.js","sourceRoot":"","sources":["../../src/components/TokenDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Button,\n Checkbox,\n Classes,\n Dialog,\n InputGroup,\n Intent,\n Label,\n} from \"@blueprintjs/core\";\nimport React, { useCallback, useState } from \"react\";\nimport createOverlayRender from \"../util/createOverlayRender\";\nimport setInputSetting from \"../util/setInputSetting\";\nimport getToken from \"../util/getToken\";\nimport getPageUidByPageTitle from \"../queries/getPageUidByPageTitle\";\nimport localStorageRemove from \"../util/localStorageRemove\";\nimport localStorageSet from \"../util/localStorageSet\";\nimport createPage from \"../writes/createPage\";\nimport { render as renderSimpleAlert } from \"../components/SimpleAlert\";\nimport getCurrentUserEmail from \"../queries/getCurrentUserEmail\";\nimport apiGet from \"../util/apiGet\";\n\ntype Props = { onEnter?: (token: string) => void };\n\nconst TokenDialog = ({ onClose, onEnter }: { onClose: () => void } & Props) => {\n const [token, setToken] = useState(getToken);\n const [useLocal, setUseLocal] = useState(true);\n const dialogOnClose = useCallback(() => {\n onClose();\n onEnter?.(\"\");\n }, [onClose, onEnter]);\n const onSubmit = useCallback(() => {\n const pageUid = getPageUidByPageTitle(\"roam/js/roamjs\");\n return (\n pageUid\n ? Promise.resolve(pageUid)\n : createPage({ title: \"roam/js/roamjs\", tree: [{ text: \"token\" }] })\n ).then(() => {\n if (useLocal) {\n localStorageSet(`token`, token);\n setInputSetting({\n blockUid: pageUid,\n key: \"token\",\n value: \"\",\n });\n } else {\n localStorageRemove(`token`);\n setInputSetting({\n blockUid: pageUid,\n key: \"token\",\n value: token,\n });\n }\n onClose();\n onEnter?.(token);\n });\n }, [token, useLocal, onClose]);\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (\n e.key === \"Enter\" &&\n !e.shiftKey &&\n !e.altKey &&\n !e.metaKey &&\n !e.ctrlKey &&\n token\n ) {\n onSubmit();\n }\n },\n [onSubmit, token]\n );\n return (\n <>\n <Dialog\n isOpen={true}\n title={`Add RoamJS Token`}\n onClose={dialogOnClose}\n canOutsideClickClose\n canEscapeKeyClose\n autoFocus={false}\n >\n <div\n className={Classes.DIALOG_BODY}\n onKeyDown={(e) => e.stopPropagation()}\n >\n <Label>\n RoamJS Token\n <InputGroup\n value={token}\n onChange={(e) => setToken(e.target.value)}\n onKeyDown={onKeyDown}\n type=\"password\"\n />\n </Label>\n <Checkbox\n label={\"Store Locally\"}\n checked={useLocal}\n onChange={(e) =>\n setUseLocal((e.target as HTMLInputElement).checked)\n }\n />\n </div>\n <div className={Classes.DIALOG_FOOTER}>\n <div className={Classes.DIALOG_FOOTER_ACTIONS}>\n <Button text={\"Cancel\"} onClick={dialogOnClose} />\n <Button text={\"Save\"} intent={Intent.PRIMARY} onClick={onSubmit} />\n </div>\n </div>\n </Dialog>\n </>\n );\n};\n\nexport const render = createOverlayRender<Props>(\"token-dialog\", TokenDialog);\n\nexport const addTokenDialogCommand = (props: Props = {}) =>\n window.roamAlphaAPI.ui.commandPalette.addCommand({\n label: \"Set RoamJS Token\",\n callback: () => render(props),\n });\n\nexport const checkRoamJSTokenWarning = () => {\n const token = getToken();\n if (!token) {\n return new Promise<string>((resolve) =>\n apiGet<{ exists: boolean }>({\n path: `users?email=${encodeURIComponent(getCurrentUserEmail())}`,\n anonymous: true,\n }).then((r) => {\n return renderSimpleAlert({\n content: `You need to ${\n r.exists\n ? \"\"\n : \"sign up at [https://roamjs.com/signup](https://roamjs.com/signup) and \"\n }add your RoamJS token to Roam to use this extension. You will only need to do this once per graph as this token will authorize you for all premium extensions.\\n\\nGrab your token from [https://roamjs.com/user/#Extensions](https://roamjs.com/user/#Extensions).`,\n onConfirm: () => render({ onEnter: resolve }),\n onCancel: () => resolve(\"\"),\n externalLink: true,\n });\n })\n );\n } else {\n return Promise.resolve(token);\n }\n};\n\nexport default TokenDialog;\n"]}
@@ -1,2 +0,0 @@
1
- declare const useRoamJSTokenWarning: () => void;
2
- export default useRoamJSTokenWarning;
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const react_1 = require("react");
4
- const TokenDialog_1 = require("../components/TokenDialog");
5
- const useRoamJSTokenWarning = () => {
6
- (0, react_1.useEffect)(() => {
7
- (0, TokenDialog_1.checkRoamJSTokenWarning)();
8
- (0, TokenDialog_1.addTokenDialogCommand)();
9
- }, []);
10
- };
11
- exports.default = useRoamJSTokenWarning;
12
- //# sourceMappingURL=useRoamJSTokenWarning.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRoamJSTokenWarning.js","sourceRoot":"","sources":["../../src/hooks/useRoamJSTokenWarning.tsx"],"names":[],"mappings":";;AAAA,iCAAkC;AAClC,2DAGmC;AAEnC,MAAM,qBAAqB,GAAG,GAAS,EAAE;IACvC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAA,qCAAuB,GAAE,CAAC;QAC1B,IAAA,mCAAqB,GAAE,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AAEF,kBAAe,qBAAqB,CAAC","sourcesContent":["import { useEffect } from \"react\";\nimport {\n addTokenDialogCommand,\n checkRoamJSTokenWarning,\n} from \"../components/TokenDialog\";\n\nconst useRoamJSTokenWarning = (): void => {\n useEffect(() => {\n checkRoamJSTokenWarning();\n addTokenDialogCommand();\n }, []);\n};\n\nexport default useRoamJSTokenWarning;\n"]}