@crimata:registry=https://gitlab.com/api/v4/projects/28849281/packages/npm/
-//gitlab.com/api/v4/projects/28849281/packages/npm/:_authToken=${NPM_TOKEN}
+//gitlab.com/api/v4/projects/28849281/packages/npm/:_authToken=${API_TOKEN}
\ No newline at end of file
### Some things to note:
-If new package.json, build manually. Only copies src code into /Resources/app.
+Notarize only when distributing outside the Mac App Store.
#### Gatekeeper Assess
Electron-osx-sign seems to have a bug where the sign will fail if "gatekeeper-assess" is true (default).
Not to be confused with Info.plist, this file specifies entitlements the app can have in hardened runtime (e.g. Can I use the microphone?). Only including the ones Electron reccommends seems to work (including audio of course and omitting allow-unsigned-executable-memory).
#### The Benifit of Electron OSX Sign
-Without this package, we would have to manually go in and figure out how to sign each level of the app. While it didn't work out of the box (gatekeeper-assess) it's proven to be good otherwise. However, there is a bug where it puts multiple runtime flags on each command - not catastrophic though.
+Without this package, we would have to manually go in and figure out how to sign each level of the app. While it didn't work out of the box (gatekeeper-assess) it seems to be good otherwise. However, there is a bug where it puts multiple runtime flags on each command - not catastrophic though.
#### Apple Password
This must be an app specific password, not your normal Apple ID password.
const sign = require("electron-osx-sign").signAsync;
const notarize = require("electron-notarize").notarize;
-const app = "Electron.app";
+const app = "Crimata.app";
const dir = `${app}/Contents/Resources/app`;
const runShellCommand = (cmd) => (new Promise((resolve, reject) => {
const notarizeConfig = {
appPath: app,
appleId: "gundersena@crimata.com",
- appBundleId: "com.github.Electron",
+ appBundleId: "com.crimata.CrimataMessenger",
appleIdPassword: process.env["AC_PASSWORD"]
};
"name": "Crimata",
"version": "1.0.0",
"dependencies": {
- "@crimata/nodeaudio": "^0.0.0",
+ "@crimata/nodeaudio": "0.0.0",
"axios": "^0.21.1",
"base64-arraybuffer": "^1.0.1",
"electron-store": "^8.0.0",
"node_modules/@crimata/nodeaudio": {
"version": "0.0.0",
"resolved": "https://gitlab.com/api/v4/projects/28849281/packages/npm/@crimata/nodeaudio/-/@crimata/nodeaudio-0.0.0.tgz",
- "integrity": "sha1-epnrLe2KfWntf4tPqwW4KVb/sQ0=",
+ "integrity": "sha1-4lPe1QynEwebXcjezyAPhfwI+VM=",
"hasInstallScript": true,
"dependencies": {
"bindings": "~1.2.1",
"@crimata/nodeaudio": {
"version": "0.0.0",
"resolved": "https://gitlab.com/api/v4/projects/28849281/packages/npm/@crimata/nodeaudio/-/@crimata/nodeaudio-0.0.0.tgz",
- "integrity": "sha1-epnrLe2KfWntf4tPqwW4KVb/sQ0=",
+ "integrity": "sha1-4lPe1QynEwebXcjezyAPhfwI+VM=",
"requires": {
"bindings": "~1.2.1",
"sleep": "^6.3.0"
"start": "electron ."
},
"dependencies": {
- "@crimata/nodeaudio": "^0.0.0",
+ "@crimata/nodeaudio": "0.0.0",
"axios": "^0.21.1",
"base64-arraybuffer": "^1.0.1",
"electron-store": "^8.0.0",
const DOMAIN = "crimata.com";
const prod = !process.defaultApp;
+// const prod = true;
module.exports = {
PLATFORM: prod ? `https://app.${DOMAIN}` : `http://localhost:8760`,
{
search(update.message).context = update.context;
}
+ else if (update.text)
+ {
+ search(update.message).content.at(-1).text = update.text;
+ setTimeout(() => {
+ document.getElementById("messenger").dispatchEvent(new CustomEvent('adjust-scroll'))
+ }, 100);
+ }
});
{
search(update.message).context = update.context;
}
+ else if (update.text) /* Update the text of last message */
+ {
+ search(update.message).content.at(-1).text = update.text;
+ }
ipcEmit("message", update);
}