@jeremyckahn/farmhand 1.19.21 → 1.19.23

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/dist/index.html CHANGED
@@ -75,7 +75,7 @@
75
75
  gtag('config', analyticsID)
76
76
  })()
77
77
  </script>
78
- <script type="module" crossorigin src="./assets/index-CG_lY1MJ.js"></script>
78
+ <script type="module" crossorigin src="./assets/index-DGjrz_t2.js"></script>
79
79
  <link rel="stylesheet" crossorigin href="./assets/index-EAmLqUoU.css">
80
80
  <link rel="manifest" href="./manifest.webmanifest"></head>
81
81
  <body>
@@ -1,2 +1,2 @@
1
- if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,o)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let d={};const l=e=>i(e,r),t={module:{uri:r},exports:d,require:l};s[r]=Promise.all(n.map(e=>t[e]||l(e))).then(e=>(o(...e),d))}}define(["./workbox-1ef09536"],function(e){"use strict";self.addEventListener("message",e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}),e.precacheAndRoute([{url:"index.html",revision:"a1c92de9c95bea8ed6f4580b9232df81"},{url:"electron.js",revision:"b0456826f47539f6c1957c3add5eb959"},{url:"assets/workbox-window.prod.es5-BIl4cyR9.js",revision:null},{url:"assets/index-EAmLqUoU.css",revision:null},{url:"assets/index-CG_lY1MJ.js",revision:null},{url:"favicon.ico",revision:"445bb19d4a8fd46eb433dd43cbdce691"},{url:"logo192.png",revision:"70746d790b8990639d1390337d77d81a"},{url:"logo512.png",revision:"b044ab46b3f33f0e2d313d961bf1f654"},{url:"logoMaskable.png",revision:"23be58ccf16df9f43658aad3da30056d"},{url:"manifest.webmanifest",revision:"3ad071a00582451c9cdeb827b37b9ebe"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
1
+ if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,o)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let d={};const l=e=>i(e,r),t={module:{uri:r},exports:d,require:l};s[r]=Promise.all(n.map(e=>t[e]||l(e))).then(e=>(o(...e),d))}}define(["./workbox-1ef09536"],function(e){"use strict";self.addEventListener("message",e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}),e.precacheAndRoute([{url:"index.html",revision:"47d34754bfed284110827bca9f4a1320"},{url:"electron.js",revision:"b0456826f47539f6c1957c3add5eb959"},{url:"assets/workbox-window.prod.es5-BIl4cyR9.js",revision:null},{url:"assets/index-EAmLqUoU.css",revision:null},{url:"assets/index-DGjrz_t2.js",revision:null},{url:"favicon.ico",revision:"445bb19d4a8fd46eb433dd43cbdce691"},{url:"logo192.png",revision:"70746d790b8990639d1390337d77d81a"},{url:"logo512.png",revision:"b044ab46b3f33f0e2d313d961bf1f654"},{url:"logoMaskable.png",revision:"23be58ccf16df9f43658aad3da30056d"},{url:"manifest.webmanifest",revision:"3ad071a00582451c9cdeb827b37b9ebe"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
2
2
  //# sourceMappingURL=service-worker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-worker.js","sources":["../../../../../tmp/e7545006cbe4aca953a3f69db2d32c01/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';\nimport {registerRoute as workbox_routing_registerRoute} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-routing/registerRoute.mjs';\nimport {NavigationRoute as workbox_routing_NavigationRoute} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-routing/NavigationRoute.mjs';\nimport {createHandlerBoundToURL as workbox_precaching_createHandlerBoundToURL} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-precaching/createHandlerBoundToURL.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"index.html\",\n \"revision\": \"a1c92de9c95bea8ed6f4580b9232df81\"\n },\n {\n \"url\": \"electron.js\",\n \"revision\": \"b0456826f47539f6c1957c3add5eb959\"\n },\n {\n \"url\": \"assets/workbox-window.prod.es5-BIl4cyR9.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-EAmLqUoU.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-CG_lY1MJ.js\",\n \"revision\": null\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"445bb19d4a8fd46eb433dd43cbdce691\"\n },\n {\n \"url\": \"logo192.png\",\n \"revision\": \"70746d790b8990639d1390337d77d81a\"\n },\n {\n \"url\": \"logo512.png\",\n \"revision\": \"b044ab46b3f33f0e2d313d961bf1f654\"\n },\n {\n \"url\": \"logoMaskable.png\",\n \"revision\": \"23be58ccf16df9f43658aad3da30056d\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"3ad071a00582451c9cdeb827b37b9ebe\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\nworkbox_routing_registerRoute(new workbox_routing_NavigationRoute(workbox_precaching_createHandlerBoundToURL(\"index.html\")));\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision","workbox_precaching_cleanupOutdatedCaches","workbox","registerRoute","workbox_routing_NavigationRoute","NavigationRoute","workbox_precaching_createHandlerBoundToURL"],"mappings":"inBAuBAA,KAAKC,iBAAiB,UAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,gBAYTC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,qCAEb,CAAE,GACLC,EAAAA,wBAC6BC,EAAAC,cAAC,IAAIC,EAA+BC,gBAACC,0BAA2C"}
1
+ {"version":3,"file":"service-worker.js","sources":["../../../../../tmp/a23618032071e03b8000878681a4148d/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';\nimport {registerRoute as workbox_routing_registerRoute} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-routing/registerRoute.mjs';\nimport {NavigationRoute as workbox_routing_NavigationRoute} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-routing/NavigationRoute.mjs';\nimport {createHandlerBoundToURL as workbox_precaching_createHandlerBoundToURL} from '/home/runner/work/farmhand/farmhand/node_modules/workbox-precaching/createHandlerBoundToURL.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"index.html\",\n \"revision\": \"47d34754bfed284110827bca9f4a1320\"\n },\n {\n \"url\": \"electron.js\",\n \"revision\": \"b0456826f47539f6c1957c3add5eb959\"\n },\n {\n \"url\": \"assets/workbox-window.prod.es5-BIl4cyR9.js\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-EAmLqUoU.css\",\n \"revision\": null\n },\n {\n \"url\": \"assets/index-DGjrz_t2.js\",\n \"revision\": null\n },\n {\n \"url\": \"favicon.ico\",\n \"revision\": \"445bb19d4a8fd46eb433dd43cbdce691\"\n },\n {\n \"url\": \"logo192.png\",\n \"revision\": \"70746d790b8990639d1390337d77d81a\"\n },\n {\n \"url\": \"logo512.png\",\n \"revision\": \"b044ab46b3f33f0e2d313d961bf1f654\"\n },\n {\n \"url\": \"logoMaskable.png\",\n \"revision\": \"23be58ccf16df9f43658aad3da30056d\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"3ad071a00582451c9cdeb827b37b9ebe\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\nworkbox_routing_registerRoute(new workbox_routing_NavigationRoute(workbox_precaching_createHandlerBoundToURL(\"index.html\")));\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision","workbox_precaching_cleanupOutdatedCaches","workbox","registerRoute","workbox_routing_NavigationRoute","NavigationRoute","workbox_precaching_createHandlerBoundToURL"],"mappings":"inBAuBAA,KAAKC,iBAAiB,UAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,gBAYTC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,2BACPC,SAAY,MAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,mBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,qCAEb,CAAE,GACLC,EAAAA,wBAC6BC,EAAAC,cAAC,IAAIC,EAA+BC,gBAACC,0BAA2C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jeremyckahn/farmhand",
3
- "version": "1.19.21",
3
+ "version": "1.19.23",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -10,7 +10,7 @@
10
10
  "homepage": "https://www.farmhand.life/",
11
11
  "type": "module",
12
12
  "scripts": {
13
- "build": "vite build",
13
+ "build": "npm run build:api && vite build",
14
14
  "build:native": "npm run build -- --base='./' && electron-builder --publish=always",
15
15
  "check:types": "tsc",
16
16
  "dev": "mprocs \"cross-env VITE_TRACKER_URL='ws://localhost:8000' npm run start\" \"npm run start:api\" \"npm run start:backend\" \"npm run start:tracker\"",
@@ -21,18 +21,21 @@
21
21
  "e2e:serve-app": "npx vite preview --port 3000 --host",
22
22
  "e2e:create": "npx playwright codegen localhost:3000?seed=0.5",
23
23
  "electron": "wait-on tcp:3000 && electron .",
24
- "print:crops": "npx babel-node --presets @babel/preset-env --presets babel-preset-vite src/scripts/generate-crop-table.js",
24
+ "print:crops": "vite-node src/scripts/generate-crop-table.ts",
25
25
  "lint": "eslint src --max-warnings=0",
26
26
  "prettier": "prettier 'src/**/*.{js,ts,tsx}' --write",
27
27
  "preversion": "npm test",
28
28
  "postversion": "git push && git push --tags",
29
+ "postinstall": "npm run build:api",
29
30
  "start": "vite --port=3000",
30
31
  "start:api": "NODE_OPTIONS=--openssl-legacy-provider vercel dev --token=$VERCEL_TOKEN --listen=0.0.0.0:3001 --yes",
31
32
  "start:backend": "docker compose up",
32
33
  "start:tracker": "bittorrent-tracker",
33
34
  "test": "vitest",
34
35
  "test:debug": "vitest --inspect-brk --no-file-parallelism --run",
35
- "update-images": "bash update-images.sh"
36
+ "update-images": "bash update-images.sh",
37
+ "build:api": "esbuild api-src/get-market-data.ts api-src/post-day-results.ts --bundle --packages=external --platform=node --format=esm --out-extension:.js=.mjs --outdir=api",
38
+ "build:vercel-functions": "node scripts/build-vercel-functions.mjs"
36
39
  },
37
40
  "author": "Jeremy Kahn <jeremyckahn@gmail.com>",
38
41
  "license": "GPL-2.0-or-later",
@@ -44,8 +47,6 @@
44
47
  "node": "22.x"
45
48
  },
46
49
  "devDependencies": {
47
- "@babel/core": "^7.25.2",
48
- "@babel/node": "^7.20.7",
49
50
  "@testing-library/dom": "^8.3.0",
50
51
  "@testing-library/jest-dom": "^5.14.1",
51
52
  "@testing-library/react": "^12.0.0",
@@ -55,24 +56,24 @@
55
56
  "@types/node": "^22.19.9",
56
57
  "@types/react": "^17.0.2",
57
58
  "@types/uuid": "^9.0.2",
58
- "@typescript-eslint/eslint-plugin": "^2.23.0",
59
- "@typescript-eslint/parser": "^2.23.0",
59
+ "@typescript-eslint/eslint-plugin": "^8.58.1",
60
+ "@typescript-eslint/parser": "^8.58.1",
60
61
  "@vitejs/plugin-react": "^4.2.1",
61
62
  "@vitest/coverage-v8": "^4.0.18",
62
- "babel-preset-vite": "^1.1.3",
63
63
  "bittorrent-tracker": "^9.19.0",
64
64
  "browserslist": "^4.21.9",
65
65
  "cheerio": "^1.0.0-rc.3",
66
66
  "cross-env": "^7.0.2",
67
- "electron": "^35.7.5",
67
+ "electron": "^39.8.4",
68
68
  "electron-builder": "^26.0.12",
69
- "eslint": "^7.13.0",
70
- "eslint-config-react-app": "^5.2.0",
71
- "eslint-plugin-flowtype": "^4.6.0",
69
+ "esbuild": "^0.27.4",
70
+ "eslint": "^8.57.1",
71
+ "eslint-config-react-app": "^7.0.1",
72
+ "eslint-plugin-flowtype": "^8.0.3",
72
73
  "eslint-plugin-import": "^2.29.1",
73
74
  "eslint-plugin-jsx-a11y": "^6.2.3",
74
75
  "eslint-plugin-react": "^7.19.0",
75
- "eslint-plugin-react-hooks": "^2.5.0",
76
+ "eslint-plugin-react-hooks": "^4.6.2",
76
77
  "git-branch-is": "^4.0.0",
77
78
  "husky": "^4.2.3",
78
79
  "jest-extended": "^0.11.5",
@@ -90,6 +91,7 @@
90
91
  "typescript": "^6.0.2",
91
92
  "vercel": "^50.10.1",
92
93
  "vite": "^7.3.1",
94
+ "vite-node": "^6.0.0",
93
95
  "vite-plugin-pwa": "^1.2.0",
94
96
  "vitest": "^4.0.18",
95
97
  "wait-on": "^8.0.3"
@@ -110,7 +112,6 @@
110
112
  "animate.css": "^4.1.0",
111
113
  "assert": "npm:assert-browserify@^2.0.0",
112
114
  "axios": "^1.6.0",
113
- "babel-eslint": "^10.1.0",
114
115
  "buffer": "^6.0.3",
115
116
  "classnames": "^2.2.6",
116
117
  "dinero.js": "^2.0.0",