skill-home 0.3.34 → 0.3.52

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.
Files changed (535) hide show
  1. package/package.json +3 -3
  2. package/templates/space/fixed_spot.html +1 -1
  3. package/templates/space/location_manage.html +1 -1
  4. package/dist/cli/cmd_read.d.ts +0 -3
  5. package/dist/cli/cmd_read.d.ts.map +0 -1
  6. package/dist/cli/cmd_read.js +0 -304
  7. package/dist/cli/cmd_read.js.map +0 -1
  8. package/dist/cli/config.d.ts +0 -20
  9. package/dist/cli/config.d.ts.map +0 -1
  10. package/dist/cli/config.js +0 -100
  11. package/dist/cli/config.js.map +0 -1
  12. package/dist/cli/health.d.ts +0 -7
  13. package/dist/cli/health.d.ts.map +0 -1
  14. package/dist/cli/health.js +0 -32
  15. package/dist/cli/health.js.map +0 -1
  16. package/dist/cli/keys.d.ts +0 -4
  17. package/dist/cli/keys.d.ts.map +0 -1
  18. package/dist/cli/keys.js +0 -55
  19. package/dist/cli/keys.js.map +0 -1
  20. package/dist/cli/registry.d.ts +0 -4
  21. package/dist/cli/registry.d.ts.map +0 -1
  22. package/dist/cli/registry.js +0 -32
  23. package/dist/cli/registry.js.map +0 -1
  24. package/dist/config.d.ts +0 -53
  25. package/dist/config.d.ts.map +0 -1
  26. package/dist/config.js +0 -122
  27. package/dist/config.js.map +0 -1
  28. package/dist/data/commands.d.ts +0 -11
  29. package/dist/data/commands.d.ts.map +0 -1
  30. package/dist/data/commands.js +0 -7
  31. package/dist/data/commands.js.map +0 -1
  32. package/dist/data/index.d.ts +0 -3
  33. package/dist/data/index.d.ts.map +0 -1
  34. package/dist/data/index.js +0 -4
  35. package/dist/data/index.js.map +0 -1
  36. package/dist/data/query.d.ts +0 -23
  37. package/dist/data/query.d.ts.map +0 -1
  38. package/dist/data/query.js +0 -19
  39. package/dist/data/query.js.map +0 -1
  40. package/dist/data/routes.d.ts +0 -3
  41. package/dist/data/routes.d.ts.map +0 -1
  42. package/dist/data/routes.js +0 -2
  43. package/dist/data/routes.js.map +0 -1
  44. package/dist/data/schema.d.ts +0 -15
  45. package/dist/data/schema.d.ts.map +0 -1
  46. package/dist/data/schema.js +0 -18
  47. package/dist/data/schema.js.map +0 -1
  48. package/dist/data/tables.d.ts +0 -48
  49. package/dist/data/tables.d.ts.map +0 -1
  50. package/dist/data/tables.js +0 -82
  51. package/dist/data/tables.js.map +0 -1
  52. package/dist/express/commands.d.ts +0 -3
  53. package/dist/express/commands.d.ts.map +0 -1
  54. package/dist/express/commands.js +0 -6
  55. package/dist/express/commands.js.map +0 -1
  56. package/dist/express/index.d.ts +0 -3
  57. package/dist/express/index.d.ts.map +0 -1
  58. package/dist/express/index.js +0 -4
  59. package/dist/express/index.js.map +0 -1
  60. package/dist/express/pages/express.d.ts +0 -24
  61. package/dist/express/pages/express.d.ts.map +0 -1
  62. package/dist/express/pages/express.js +0 -160
  63. package/dist/express/pages/express.js.map +0 -1
  64. package/dist/express/pages/list.d.ts +0 -24
  65. package/dist/express/pages/list.d.ts.map +0 -1
  66. package/dist/express/pages/list.js +0 -167
  67. package/dist/express/pages/list.js.map +0 -1
  68. package/dist/express/pages/missing.d.ts +0 -24
  69. package/dist/express/pages/missing.d.ts.map +0 -1
  70. package/dist/express/pages/missing.js +0 -146
  71. package/dist/express/pages/missing.js.map +0 -1
  72. package/dist/express/pages/stock.d.ts +0 -24
  73. package/dist/express/pages/stock.d.ts.map +0 -1
  74. package/dist/express/pages/stock.js +0 -176
  75. package/dist/express/pages/stock.js.map +0 -1
  76. package/dist/express/routes.d.ts +0 -3
  77. package/dist/express/routes.d.ts.map +0 -1
  78. package/dist/express/routes.js +0 -8
  79. package/dist/express/routes.js.map +0 -1
  80. package/dist/express/shopping.d.ts +0 -4
  81. package/dist/express/shopping.d.ts.map +0 -1
  82. package/dist/express/shopping.js +0 -145
  83. package/dist/express/shopping.js.map +0 -1
  84. package/dist/family/care.d.ts +0 -4
  85. package/dist/family/care.d.ts.map +0 -1
  86. package/dist/family/care.js +0 -103
  87. package/dist/family/care.js.map +0 -1
  88. package/dist/family/commands.d.ts +0 -3
  89. package/dist/family/commands.d.ts.map +0 -1
  90. package/dist/family/commands.js +0 -6
  91. package/dist/family/commands.js.map +0 -1
  92. package/dist/family/index.d.ts +0 -3
  93. package/dist/family/index.d.ts.map +0 -1
  94. package/dist/family/index.js +0 -4
  95. package/dist/family/index.js.map +0 -1
  96. package/dist/family/pages/family_borrow.d.ts +0 -24
  97. package/dist/family/pages/family_borrow.d.ts.map +0 -1
  98. package/dist/family/pages/family_borrow.js +0 -267
  99. package/dist/family/pages/family_borrow.js.map +0 -1
  100. package/dist/family/pages/family_members.d.ts +0 -24
  101. package/dist/family/pages/family_members.d.ts.map +0 -1
  102. package/dist/family/pages/family_members.js +0 -171
  103. package/dist/family/pages/family_members.js.map +0 -1
  104. package/dist/family/routes.d.ts +0 -3
  105. package/dist/family/routes.d.ts.map +0 -1
  106. package/dist/family/routes.js +0 -20
  107. package/dist/family/routes.js.map +0 -1
  108. package/dist/fetch/archive.d.ts +0 -13
  109. package/dist/fetch/archive.d.ts.map +0 -1
  110. package/dist/fetch/archive.js +0 -115
  111. package/dist/fetch/archive.js.map +0 -1
  112. package/dist/fetch/backup.d.ts +0 -75
  113. package/dist/fetch/backup.d.ts.map +0 -1
  114. package/dist/fetch/backup.js +0 -285
  115. package/dist/fetch/backup.js.map +0 -1
  116. package/dist/fetch/db.d.ts +0 -107
  117. package/dist/fetch/db.d.ts.map +0 -1
  118. package/dist/fetch/db.js +0 -443
  119. package/dist/fetch/db.js.map +0 -1
  120. package/dist/fetch/domains.d.ts +0 -151
  121. package/dist/fetch/domains.d.ts.map +0 -1
  122. package/dist/fetch/domains.js +0 -354
  123. package/dist/fetch/domains.js.map +0 -1
  124. package/dist/fetch/errors.d.ts +0 -11
  125. package/dist/fetch/errors.d.ts.map +0 -1
  126. package/dist/fetch/errors.js +0 -18
  127. package/dist/fetch/errors.js.map +0 -1
  128. package/dist/fetch/index.d.ts +0 -11
  129. package/dist/fetch/index.d.ts.map +0 -1
  130. package/dist/fetch/index.js +0 -14
  131. package/dist/fetch/index.js.map +0 -1
  132. package/dist/fetch/masterKey.d.ts +0 -11
  133. package/dist/fetch/masterKey.d.ts.map +0 -1
  134. package/dist/fetch/masterKey.js +0 -46
  135. package/dist/fetch/masterKey.js.map +0 -1
  136. package/dist/fetch/paths.d.ts +0 -55
  137. package/dist/fetch/paths.d.ts.map +0 -1
  138. package/dist/fetch/paths.js +0 -100
  139. package/dist/fetch/paths.js.map +0 -1
  140. package/dist/health.d.ts +0 -50
  141. package/dist/health.d.ts.map +0 -1
  142. package/dist/health.js +0 -524
  143. package/dist/health.js.map +0 -1
  144. package/dist/help/helpAssets.d.ts +0 -52
  145. package/dist/help/helpAssets.d.ts.map +0 -1
  146. package/dist/help/helpAssets.js +0 -2323
  147. package/dist/help/helpAssets.js.map +0 -1
  148. package/dist/help/helpFile.d.ts +0 -62
  149. package/dist/help/helpFile.d.ts.map +0 -1
  150. package/dist/help/helpFile.js +0 -219
  151. package/dist/help/helpFile.js.map +0 -1
  152. package/dist/help/index.d.ts +0 -6
  153. package/dist/help/index.d.ts.map +0 -1
  154. package/dist/help/index.js +0 -8
  155. package/dist/help/index.js.map +0 -1
  156. package/dist/help/lookup.d.ts +0 -11
  157. package/dist/help/lookup.d.ts.map +0 -1
  158. package/dist/help/lookup.js +0 -52
  159. package/dist/help/lookup.js.map +0 -1
  160. package/dist/help/manifest.d.ts +0 -17
  161. package/dist/help/manifest.d.ts.map +0 -1
  162. package/dist/help/manifest.js +0 -44
  163. package/dist/help/manifest.js.map +0 -1
  164. package/dist/help/output.d.ts +0 -12
  165. package/dist/help/output.d.ts.map +0 -1
  166. package/dist/help/output.js +0 -65
  167. package/dist/help/output.js.map +0 -1
  168. package/dist/index.d.ts +0 -5
  169. package/dist/index.d.ts.map +0 -1
  170. package/dist/index.js +0 -6
  171. package/dist/index.js.map +0 -1
  172. package/dist/items/add.d.ts +0 -3
  173. package/dist/items/add.d.ts.map +0 -1
  174. package/dist/items/add.js +0 -34
  175. package/dist/items/add.js.map +0 -1
  176. package/dist/items/commands.d.ts +0 -3
  177. package/dist/items/commands.d.ts.map +0 -1
  178. package/dist/items/commands.js +0 -22
  179. package/dist/items/commands.js.map +0 -1
  180. package/dist/items/detail.d.ts +0 -3
  181. package/dist/items/detail.d.ts.map +0 -1
  182. package/dist/items/detail.js +0 -31
  183. package/dist/items/detail.js.map +0 -1
  184. package/dist/items/index.d.ts +0 -3
  185. package/dist/items/index.d.ts.map +0 -1
  186. package/dist/items/index.js +0 -4
  187. package/dist/items/index.js.map +0 -1
  188. package/dist/items/inventory.d.ts +0 -4
  189. package/dist/items/inventory.d.ts.map +0 -1
  190. package/dist/items/inventory.js +0 -63
  191. package/dist/items/inventory.js.map +0 -1
  192. package/dist/items/pages/add_form.d.ts +0 -24
  193. package/dist/items/pages/add_form.d.ts.map +0 -1
  194. package/dist/items/pages/add_form.js +0 -174
  195. package/dist/items/pages/add_form.js.map +0 -1
  196. package/dist/items/pages/browse.d.ts +0 -24
  197. package/dist/items/pages/browse.d.ts.map +0 -1
  198. package/dist/items/pages/browse.js +0 -143
  199. package/dist/items/pages/browse.js.map +0 -1
  200. package/dist/items/pages/category_manage.d.ts +0 -24
  201. package/dist/items/pages/category_manage.d.ts.map +0 -1
  202. package/dist/items/pages/category_manage.js +0 -153
  203. package/dist/items/pages/category_manage.js.map +0 -1
  204. package/dist/items/pages/confirm.d.ts +0 -24
  205. package/dist/items/pages/confirm.d.ts.map +0 -1
  206. package/dist/items/pages/confirm.js +0 -149
  207. package/dist/items/pages/confirm.js.map +0 -1
  208. package/dist/items/pages/detail.d.ts +0 -24
  209. package/dist/items/pages/detail.d.ts.map +0 -1
  210. package/dist/items/pages/detail.js +0 -160
  211. package/dist/items/pages/detail.js.map +0 -1
  212. package/dist/items/pages/duplicates.d.ts +0 -24
  213. package/dist/items/pages/duplicates.d.ts.map +0 -1
  214. package/dist/items/pages/duplicates.js +0 -138
  215. package/dist/items/pages/duplicates.js.map +0 -1
  216. package/dist/items/pages/history.d.ts +0 -24
  217. package/dist/items/pages/history.d.ts.map +0 -1
  218. package/dist/items/pages/history.js +0 -213
  219. package/dist/items/pages/history.js.map +0 -1
  220. package/dist/items/pages/inventory_diff.d.ts +0 -24
  221. package/dist/items/pages/inventory_diff.d.ts.map +0 -1
  222. package/dist/items/pages/inventory_diff.js +0 -126
  223. package/dist/items/pages/inventory_diff.js.map +0 -1
  224. package/dist/items/pages/inventory_records.d.ts +0 -24
  225. package/dist/items/pages/inventory_records.d.ts.map +0 -1
  226. package/dist/items/pages/inventory_records.js +0 -147
  227. package/dist/items/pages/inventory_records.js.map +0 -1
  228. package/dist/items/pages/inventory_round.d.ts +0 -24
  229. package/dist/items/pages/inventory_round.d.ts.map +0 -1
  230. package/dist/items/pages/inventory_round.js +0 -145
  231. package/dist/items/pages/inventory_round.js.map +0 -1
  232. package/dist/items/pages/locate.d.ts +0 -24
  233. package/dist/items/pages/locate.d.ts.map +0 -1
  234. package/dist/items/pages/locate.js +0 -129
  235. package/dist/items/pages/locate.js.map +0 -1
  236. package/dist/items/pages/move_checklist.d.ts +0 -24
  237. package/dist/items/pages/move_checklist.d.ts.map +0 -1
  238. package/dist/items/pages/move_checklist.js +0 -112
  239. package/dist/items/pages/move_checklist.js.map +0 -1
  240. package/dist/items/pages/photo_wall.d.ts +0 -24
  241. package/dist/items/pages/photo_wall.d.ts.map +0 -1
  242. package/dist/items/pages/photo_wall.js +0 -145
  243. package/dist/items/pages/photo_wall.js.map +0 -1
  244. package/dist/items/pages/photos.d.ts +0 -24
  245. package/dist/items/pages/photos.d.ts.map +0 -1
  246. package/dist/items/pages/photos.js +0 -182
  247. package/dist/items/pages/photos.js.map +0 -1
  248. package/dist/items/pages/receipt.d.ts +0 -24
  249. package/dist/items/pages/receipt.d.ts.map +0 -1
  250. package/dist/items/pages/receipt.js +0 -252
  251. package/dist/items/pages/receipt.js.map +0 -1
  252. package/dist/items/pages/relations.d.ts +0 -24
  253. package/dist/items/pages/relations.d.ts.map +0 -1
  254. package/dist/items/pages/relations.js +0 -144
  255. package/dist/items/pages/relations.js.map +0 -1
  256. package/dist/items/pages/search_list.d.ts +0 -24
  257. package/dist/items/pages/search_list.d.ts.map +0 -1
  258. package/dist/items/pages/search_list.js +0 -133
  259. package/dist/items/pages/search_list.js.map +0 -1
  260. package/dist/items/pages/tag_manage.d.ts +0 -24
  261. package/dist/items/pages/tag_manage.d.ts.map +0 -1
  262. package/dist/items/pages/tag_manage.js +0 -238
  263. package/dist/items/pages/tag_manage.js.map +0 -1
  264. package/dist/items/pages/undo_select.d.ts +0 -24
  265. package/dist/items/pages/undo_select.d.ts.map +0 -1
  266. package/dist/items/pages/undo_select.js +0 -143
  267. package/dist/items/pages/undo_select.js.map +0 -1
  268. package/dist/items/routes.d.ts +0 -3
  269. package/dist/items/routes.d.ts.map +0 -1
  270. package/dist/items/routes.js +0 -62
  271. package/dist/items/routes.js.map +0 -1
  272. package/dist/items/search.d.ts +0 -3
  273. package/dist/items/search.d.ts.map +0 -1
  274. package/dist/items/search.js +0 -47
  275. package/dist/items/search.js.map +0 -1
  276. package/dist/items/tag.d.ts +0 -25
  277. package/dist/items/tag.d.ts.map +0 -1
  278. package/dist/items/tag.js +0 -147
  279. package/dist/items/tag.js.map +0 -1
  280. package/dist/items/update.d.ts +0 -20
  281. package/dist/items/update.d.ts.map +0 -1
  282. package/dist/items/update.js +0 -211
  283. package/dist/items/update.js.map +0 -1
  284. package/dist/outfit/commands.d.ts +0 -3
  285. package/dist/outfit/commands.d.ts.map +0 -1
  286. package/dist/outfit/commands.js +0 -7
  287. package/dist/outfit/commands.js.map +0 -1
  288. package/dist/outfit/index.d.ts +0 -3
  289. package/dist/outfit/index.d.ts.map +0 -1
  290. package/dist/outfit/index.js +0 -4
  291. package/dist/outfit/index.js.map +0 -1
  292. package/dist/outfit/outfit.d.ts +0 -3
  293. package/dist/outfit/outfit.d.ts.map +0 -1
  294. package/dist/outfit/outfit.js +0 -187
  295. package/dist/outfit/outfit.js.map +0 -1
  296. package/dist/outfit/pages/outfit_picker.d.ts +0 -24
  297. package/dist/outfit/pages/outfit_picker.d.ts.map +0 -1
  298. package/dist/outfit/pages/outfit_picker.js +0 -185
  299. package/dist/outfit/pages/outfit_picker.js.map +0 -1
  300. package/dist/outfit/pages/travel_trip.d.ts +0 -24
  301. package/dist/outfit/pages/travel_trip.d.ts.map +0 -1
  302. package/dist/outfit/pages/travel_trip.js +0 -185
  303. package/dist/outfit/pages/travel_trip.js.map +0 -1
  304. package/dist/outfit/pages/trip_outfit_plan.d.ts +0 -24
  305. package/dist/outfit/pages/trip_outfit_plan.d.ts.map +0 -1
  306. package/dist/outfit/pages/trip_outfit_plan.js +0 -173
  307. package/dist/outfit/pages/trip_outfit_plan.js.map +0 -1
  308. package/dist/outfit/pages/wardrobe_analyze.d.ts +0 -24
  309. package/dist/outfit/pages/wardrobe_analyze.d.ts.map +0 -1
  310. package/dist/outfit/pages/wardrobe_analyze.js +0 -171
  311. package/dist/outfit/pages/wardrobe_analyze.js.map +0 -1
  312. package/dist/outfit/pages/wardrobe_season.d.ts +0 -24
  313. package/dist/outfit/pages/wardrobe_season.d.ts.map +0 -1
  314. package/dist/outfit/pages/wardrobe_season.js +0 -167
  315. package/dist/outfit/pages/wardrobe_season.js.map +0 -1
  316. package/dist/outfit/routes.d.ts +0 -3
  317. package/dist/outfit/routes.d.ts.map +0 -1
  318. package/dist/outfit/routes.js +0 -9
  319. package/dist/outfit/routes.js.map +0 -1
  320. package/dist/outfit/trip.d.ts +0 -3
  321. package/dist/outfit/trip.d.ts.map +0 -1
  322. package/dist/outfit/trip.js +0 -59
  323. package/dist/outfit/trip.js.map +0 -1
  324. package/dist/output.d.ts +0 -13
  325. package/dist/output.d.ts.map +0 -1
  326. package/dist/output.js +0 -57
  327. package/dist/output.js.map +0 -1
  328. package/dist/policy/care.d.ts +0 -4
  329. package/dist/policy/care.d.ts.map +0 -1
  330. package/dist/policy/care.js +0 -12
  331. package/dist/policy/care.js.map +0 -1
  332. package/dist/policy/category.d.ts +0 -8
  333. package/dist/policy/category.d.ts.map +0 -1
  334. package/dist/policy/category.js +0 -44
  335. package/dist/policy/category.js.map +0 -1
  336. package/dist/policy/index.d.ts +0 -9
  337. package/dist/policy/index.d.ts.map +0 -1
  338. package/dist/policy/index.js +0 -6
  339. package/dist/policy/index.js.map +0 -1
  340. package/dist/policy/item.d.ts +0 -18
  341. package/dist/policy/item.d.ts.map +0 -1
  342. package/dist/policy/item.js +0 -81
  343. package/dist/policy/item.js.map +0 -1
  344. package/dist/policy/routes.generated.d.ts +0 -3
  345. package/dist/policy/routes.generated.d.ts.map +0 -1
  346. package/dist/policy/routes.generated.js +0 -128
  347. package/dist/policy/routes.generated.js.map +0 -1
  348. package/dist/policy/ticket.d.ts +0 -6
  349. package/dist/policy/ticket.d.ts.map +0 -1
  350. package/dist/policy/ticket.js +0 -25
  351. package/dist/policy/ticket.js.map +0 -1
  352. package/dist/policy/wakewords.d.ts +0 -16
  353. package/dist/policy/wakewords.d.ts.map +0 -1
  354. package/dist/policy/wakewords.js +0 -38
  355. package/dist/policy/wakewords.js.map +0 -1
  356. package/dist/receipt/commands.d.ts +0 -3
  357. package/dist/receipt/commands.d.ts.map +0 -1
  358. package/dist/receipt/commands.js +0 -6
  359. package/dist/receipt/commands.js.map +0 -1
  360. package/dist/receipt/index.d.ts +0 -3
  361. package/dist/receipt/index.d.ts.map +0 -1
  362. package/dist/receipt/index.js +0 -4
  363. package/dist/receipt/index.js.map +0 -1
  364. package/dist/receipt/pages/accounts.d.ts +0 -24
  365. package/dist/receipt/pages/accounts.d.ts.map +0 -1
  366. package/dist/receipt/pages/accounts.js +0 -217
  367. package/dist/receipt/pages/accounts.js.map +0 -1
  368. package/dist/receipt/pages/certificates.d.ts +0 -24
  369. package/dist/receipt/pages/certificates.d.ts.map +0 -1
  370. package/dist/receipt/pages/certificates.js +0 -231
  371. package/dist/receipt/pages/certificates.js.map +0 -1
  372. package/dist/receipt/pages/purchase_records.d.ts +0 -24
  373. package/dist/receipt/pages/purchase_records.d.ts.map +0 -1
  374. package/dist/receipt/pages/purchase_records.js +0 -267
  375. package/dist/receipt/pages/purchase_records.js.map +0 -1
  376. package/dist/receipt/pages/warranty.d.ts +0 -24
  377. package/dist/receipt/pages/warranty.d.ts.map +0 -1
  378. package/dist/receipt/pages/warranty.js +0 -142
  379. package/dist/receipt/pages/warranty.js.map +0 -1
  380. package/dist/receipt/routes.d.ts +0 -3
  381. package/dist/receipt/routes.d.ts.map +0 -1
  382. package/dist/receipt/routes.js +0 -21
  383. package/dist/receipt/routes.js.map +0 -1
  384. package/dist/receipt/ticket.d.ts +0 -4
  385. package/dist/receipt/ticket.d.ts.map +0 -1
  386. package/dist/receipt/ticket.js +0 -282
  387. package/dist/receipt/ticket.js.map +0 -1
  388. package/dist/render/copyArea.d.ts +0 -64
  389. package/dist/render/copyArea.d.ts.map +0 -1
  390. package/dist/render/copyArea.js +0 -196
  391. package/dist/render/copyArea.js.map +0 -1
  392. package/dist/render/envelope.d.ts +0 -6
  393. package/dist/render/envelope.d.ts.map +0 -1
  394. package/dist/render/envelope.js +0 -42
  395. package/dist/render/envelope.js.map +0 -1
  396. package/dist/render/errors.d.ts +0 -5
  397. package/dist/render/errors.d.ts.map +0 -1
  398. package/dist/render/errors.js +0 -10
  399. package/dist/render/errors.js.map +0 -1
  400. package/dist/render/familyPage.d.ts +0 -20
  401. package/dist/render/familyPage.d.ts.map +0 -1
  402. package/dist/render/familyPage.js +0 -106
  403. package/dist/render/familyPage.js.map +0 -1
  404. package/dist/render/html.d.ts +0 -16
  405. package/dist/render/html.d.ts.map +0 -1
  406. package/dist/render/html.js +0 -135
  407. package/dist/render/html.js.map +0 -1
  408. package/dist/render/index.d.ts +0 -14
  409. package/dist/render/index.d.ts.map +0 -1
  410. package/dist/render/index.js +0 -13
  411. package/dist/render/index.js.map +0 -1
  412. package/dist/render/pageFamilies.d.ts +0 -8
  413. package/dist/render/pageFamilies.d.ts.map +0 -1
  414. package/dist/render/pageFamilies.js +0 -169
  415. package/dist/render/pageFamilies.js.map +0 -1
  416. package/dist/render/pager.d.ts +0 -9
  417. package/dist/render/pager.d.ts.map +0 -1
  418. package/dist/render/pager.js +0 -56
  419. package/dist/render/pager.js.map +0 -1
  420. package/dist/render/sceneNaming.d.ts +0 -14
  421. package/dist/render/sceneNaming.d.ts.map +0 -1
  422. package/dist/render/sceneNaming.js +0 -173
  423. package/dist/render/sceneNaming.js.map +0 -1
  424. package/dist/render/templates.d.ts +0 -5
  425. package/dist/render/templates.d.ts.map +0 -1
  426. package/dist/render/templates.js +0 -68
  427. package/dist/render/templates.js.map +0 -1
  428. package/dist/render/views.d.ts +0 -115
  429. package/dist/render/views.d.ts.map +0 -1
  430. package/dist/render/views.js +0 -81
  431. package/dist/render/views.js.map +0 -1
  432. package/dist/setup/commands.d.ts +0 -3
  433. package/dist/setup/commands.d.ts.map +0 -1
  434. package/dist/setup/commands.js +0 -9
  435. package/dist/setup/commands.js.map +0 -1
  436. package/dist/setup/index.d.ts +0 -3
  437. package/dist/setup/index.d.ts.map +0 -1
  438. package/dist/setup/index.js +0 -4
  439. package/dist/setup/index.js.map +0 -1
  440. package/dist/setup/pages/backup_receipt.d.ts +0 -24
  441. package/dist/setup/pages/backup_receipt.d.ts.map +0 -1
  442. package/dist/setup/pages/backup_receipt.js +0 -198
  443. package/dist/setup/pages/backup_receipt.js.map +0 -1
  444. package/dist/setup/pages/first_use_wizard.d.ts +0 -24
  445. package/dist/setup/pages/first_use_wizard.d.ts.map +0 -1
  446. package/dist/setup/pages/first_use_wizard.js +0 -169
  447. package/dist/setup/pages/first_use_wizard.js.map +0 -1
  448. package/dist/setup/pages/health_report.d.ts +0 -24
  449. package/dist/setup/pages/health_report.d.ts.map +0 -1
  450. package/dist/setup/pages/health_report.js +0 -152
  451. package/dist/setup/pages/health_report.js.map +0 -1
  452. package/dist/setup/pages/import_restore.d.ts +0 -24
  453. package/dist/setup/pages/import_restore.d.ts.map +0 -1
  454. package/dist/setup/pages/import_restore.js +0 -179
  455. package/dist/setup/pages/import_restore.js.map +0 -1
  456. package/dist/setup/routes.d.ts +0 -3
  457. package/dist/setup/routes.d.ts.map +0 -1
  458. package/dist/setup/routes.js +0 -2
  459. package/dist/setup/routes.js.map +0 -1
  460. package/dist/shared/commandSpec.d.ts +0 -34
  461. package/dist/shared/commandSpec.d.ts.map +0 -1
  462. package/dist/shared/commandSpec.js +0 -8
  463. package/dist/shared/commandSpec.js.map +0 -1
  464. package/dist/shared/fail.d.ts +0 -4
  465. package/dist/shared/fail.d.ts.map +0 -1
  466. package/dist/shared/fail.js +0 -16
  467. package/dist/shared/fail.js.map +0 -1
  468. package/dist/shared/params.d.ts +0 -4
  469. package/dist/shared/params.d.ts.map +0 -1
  470. package/dist/shared/params.js +0 -31
  471. package/dist/shared/params.js.map +0 -1
  472. package/dist/space/commands.d.ts +0 -3
  473. package/dist/space/commands.d.ts.map +0 -1
  474. package/dist/space/commands.js +0 -6
  475. package/dist/space/commands.js.map +0 -1
  476. package/dist/space/index.d.ts +0 -3
  477. package/dist/space/index.d.ts.map +0 -1
  478. package/dist/space/index.js +0 -4
  479. package/dist/space/index.js.map +0 -1
  480. package/dist/space/location.d.ts +0 -82
  481. package/dist/space/location.d.ts.map +0 -1
  482. package/dist/space/location.js +0 -324
  483. package/dist/space/location.js.map +0 -1
  484. package/dist/space/pages/fixed_spot.d.ts +0 -24
  485. package/dist/space/pages/fixed_spot.d.ts.map +0 -1
  486. package/dist/space/pages/fixed_spot.js +0 -122
  487. package/dist/space/pages/fixed_spot.js.map +0 -1
  488. package/dist/space/pages/location_manage.d.ts +0 -24
  489. package/dist/space/pages/location_manage.d.ts.map +0 -1
  490. package/dist/space/pages/location_manage.js +0 -182
  491. package/dist/space/pages/location_manage.js.map +0 -1
  492. package/dist/space/pages/space_view.d.ts +0 -24
  493. package/dist/space/pages/space_view.d.ts.map +0 -1
  494. package/dist/space/pages/space_view.js +0 -185
  495. package/dist/space/pages/space_view.js.map +0 -1
  496. package/dist/space/pages/suggest_storage.d.ts +0 -24
  497. package/dist/space/pages/suggest_storage.d.ts.map +0 -1
  498. package/dist/space/pages/suggest_storage.js +0 -179
  499. package/dist/space/pages/suggest_storage.js.map +0 -1
  500. package/dist/space/routes.d.ts +0 -3
  501. package/dist/space/routes.d.ts.map +0 -1
  502. package/dist/space/routes.js +0 -24
  503. package/dist/space/routes.js.map +0 -1
  504. package/dist/stats/commands.d.ts +0 -3
  505. package/dist/stats/commands.d.ts.map +0 -1
  506. package/dist/stats/commands.js +0 -6
  507. package/dist/stats/commands.js.map +0 -1
  508. package/dist/stats/index.d.ts +0 -3
  509. package/dist/stats/index.d.ts.map +0 -1
  510. package/dist/stats/index.js +0 -4
  511. package/dist/stats/index.js.map +0 -1
  512. package/dist/stats/pages/expiring.d.ts +0 -24
  513. package/dist/stats/pages/expiring.d.ts.map +0 -1
  514. package/dist/stats/pages/expiring.js +0 -220
  515. package/dist/stats/pages/expiring.js.map +0 -1
  516. package/dist/stats/pages/idle.d.ts +0 -24
  517. package/dist/stats/pages/idle.d.ts.map +0 -1
  518. package/dist/stats/pages/idle.js +0 -181
  519. package/dist/stats/pages/idle.js.map +0 -1
  520. package/dist/stats/pages/inventory_stat.d.ts +0 -24
  521. package/dist/stats/pages/inventory_stat.d.ts.map +0 -1
  522. package/dist/stats/pages/inventory_stat.js +0 -165
  523. package/dist/stats/pages/inventory_stat.js.map +0 -1
  524. package/dist/stats/pages/overview.d.ts +0 -24
  525. package/dist/stats/pages/overview.d.ts.map +0 -1
  526. package/dist/stats/pages/overview.js +0 -238
  527. package/dist/stats/pages/overview.js.map +0 -1
  528. package/dist/stats/routes.d.ts +0 -3
  529. package/dist/stats/routes.d.ts.map +0 -1
  530. package/dist/stats/routes.js +0 -16
  531. package/dist/stats/routes.js.map +0 -1
  532. package/dist/stats/stats.d.ts +0 -4
  533. package/dist/stats/stats.d.ts.map +0 -1
  534. package/dist/stats/stats.js +0 -92
  535. package/dist/stats/stats.js.map +0 -1
@@ -1,160 +0,0 @@
1
- // express能力·express页装配(#805 脚手架生成,#812 域票填真内容)。
2
- //
3
- // 一族一个装配件:模板 `templates/express/express.html` 的装配入口。
4
- // 必需块原文=契约附录(事实源),登记表 `scripts/lib/page-blocks.mjs` 由同一附录派生;
5
- // 三方(本件/登记表/附录)由 `test/scaffold.test.mjs` 逐族对账,走散即红。
6
- // 空态与异常态位:`renderFamilyPage` 按 REQUIRED_BLOCKS.empty 原样输出槽位,域票把真空态填进来。
7
- // 数据形状声明:PAGE_META(主命令/形状/场景预设示例/服务场景清单)。
8
- import { readFileSync } from 'node:fs';
9
- import { fillTemplate, escapeHtml, homeCopyArea, homeCopyLog, homeNowStamp } from '../../render/index.js';
10
- export const FAMILY = 'express';
11
- export const PAGE_META = {
12
- domain: 'express',
13
- family: FAMILY,
14
- key: 'home.shopping.query',
15
- shape: 'list',
16
- preset: { "kind": "express" },
17
- rows: [{ "key": "home.shopping.query", "preset": { "kind": "express" } }],
18
- };
19
- export const REQUIRED_BLOCKS = {
20
- "empty": [
21
- "空态:当前没有快递中物品",
22
- "拦截态:请先勾选收到的物品",
23
- "异常:数据解析失败"
24
- ],
25
- "fields": [
26
- "快递中物品(名称/已等N天/是否超时)",
27
- "超时天数",
28
- "摘要"
29
- ],
30
- "operations": [
31
- "勾选",
32
- "我收到了",
33
- "收到的放备用",
34
- "新到的物品录入",
35
- "复制数据",
36
- "复制日志"
37
- ],
38
- "status": [
39
- "快递中",
40
- "超时",
41
- "在家",
42
- "备用"
43
- ]
44
- };
45
- function sectionOf(group, title) {
46
- const items = REQUIRED_BLOCKS[group].map((b) => {
47
- // 注:fields:0 含单字母占位符,按判据例外以全角呈现给人看,
48
- // 原文仍藏在注释里供机审对账(见 renderFamilyPage 尾部,补票待契约改字)。
49
- const vis = b === '快递中物品(名称/已等N天/是否超时)'
50
- ? '快递中物品(名称/已等N天/是否超时)'
51
- : b;
52
- return '<li data-need="' + escapeHtml(b) + '">' + escapeHtml(vis) + '</li>';
53
- }).join('');
54
- return '<section hidden data-block="' + group + '"><h2>' + title + '</h2><ul>' + items + '</ul></section>';
55
- }
56
- function asExpress(env) {
57
- const d = env.data;
58
- const raw = d.items ?? [];
59
- const items = raw.map((r) => {
60
- const o = r;
61
- return {
62
- id: Number(o.id ?? 0),
63
- name: String(o.name ?? ''),
64
- quantity: Number(o.quantity ?? 1),
65
- category_name: String(o.category_name ?? ''),
66
- location: String(o.location ?? ''),
67
- photo: String(o.photo ?? ''),
68
- days: Number(o.days ?? 0),
69
- overdue: Boolean(o.overdue ?? false),
70
- };
71
- }).filter((x) => x.name);
72
- return { items, timeout: Number(d.timeout_days ?? 7) };
73
- }
74
- // 装配入口:真 envelope(真命令链产出)+本族模板 → 同形整页。
75
- // fail-closed:模板缺失/标记异常(fillTemplate 内抛)不返空页。
76
- // 复制区走共用件(卡路里同款三格式+六段日志);`ctx.command` 由交付链供给(含 params),直调缺省按本族主 key。
77
- export function renderFamilyPage(env, ctx) {
78
- const template = readFileSync(new URL('../../../templates/express/express.html', import.meta.url), 'utf8');
79
- const head = '<div class="fam-head"><span>快递购物</span>'
80
- + '<span>快递跟踪</span></div>';
81
- const { items, timeout } = asExpress(env);
82
- const overdue = items.filter((x) => x.overdue);
83
- const style = '<style>'
84
- + '.x-lead{color:#3a3a3c;font-size:15px;line-height:1.7;margin:12px 0}'
85
- + '.x-metrics{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}'
86
- + '.x-pill{border:1px solid #ddd;border-radius:999px;padding:6px 14px;font-size:13px;background:#fbfbfd}'
87
- + '.x-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:12px}'
88
- // ③ 双端不塌(#817 seq 45):勾选件原来是卡片首行的独占块(下面是块级名称行),390 档一行只剩个方框、
89
- // 卡高从 68 涨到约 128px;改 flex 把方框与名称并到同一行,窄档不挤不叠。
90
- + '.x-card{display:flex;align-items:flex-start;gap:10px;border:1px solid #eee;border-radius:14px;padding:14px;background:#fff}'
91
- + '.x-body{flex:1;min-width:0}'
92
- + '.x-photo{width:100%;height:56px;border-radius:10px;background:#f0f3f8;display:flex;align-items:center;justify-content:center;color:#888;font-size:13px;margin-bottom:10px;overflow:hidden}'
93
- + '.x-name{font-weight:700;font-size:16px;word-break:break-word}'
94
- + '.x-state{display:inline-block;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;margin-left:8px}'
95
- + '.x-state.days{background:#eef5ff;color:#0a63ce}.x-state.over{background:#ffe8e6;color:#c00}'
96
- + '.x-meta{color:#666;font-size:13px;margin-top:6px}'
97
- + '.x-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}'
98
- + '.x-btn{border:none;background:#007aff;color:#fff;border-radius:999px;padding:12px 18px;font-weight:700;min-height:44px;font-size:15px}'
99
- + '.x-btn.alt{background:#f2f2f7;color:#111;border:1px solid #ddd}'
100
- + '.x-btn.ghost{background:#fff;color:#007aff;border:1px solid #007aff}'
101
- + '.x-check{width:44px;height:44px;flex:none;appearance:none;border:1.5px solid #c7c7cc;border-radius:12px;background:#fff center/22px 22px no-repeat;margin:0;vertical-align:middle}.x-check:checked{border-color:#0a63ce;background-color:#0a63ce;background-image:url(\'data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23fff%22 stroke-width=%223%22><path d=%22M4 12l6 6L20 6%22/></svg>\')}'
102
- + '.x-empty{text-align:center;color:#666;padding:26px 0;line-height:2}'
103
- + '@media(max-width:820px){.x-cards{grid-template-columns:1fr}.x-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.x-btn{width:100%}}'
104
- + '</style>';
105
- const P_BACKUP = '请加载居家管家技能,帮我确认收货,收到的放备用';
106
- const P_NEW = '请加载居家管家技能,帮我录入新到的物品';
107
- // #890:「我收到了」的初始载荷(点后由页内 `onclick` 按当刻勾选改写 `data-t`)。
108
- const P_RECEIVE = '请加载居家管家技能,帮我确认收货';
109
- let body = style;
110
- body += '<p class="x-lead">勾选收到的快递,点下方的按钮标记到家,超过 ' + timeout + ' 天会标红提醒</p>';
111
- body += '<div class="x-metrics">'
112
- + '<span class="x-pill">在途 ' + items.length + ' 件</span>'
113
- + '<span class="x-pill">超时 ' + overdue.length + ' 件</span>'
114
- + '<span class="x-pill">超时线 ' + timeout + ' 天</span>'
115
- + '</div>';
116
- if (items.length) {
117
- body += '<section><h2>快递中</h2><div class="x-cards" id="x-list">'
118
- + items.map((it) => '<div class="x-card"><input class="x-check" type="checkbox" data-id="' + it.id + '" data-name="' + escapeHtml(it.name) + '">'
119
- + '<div class="x-body">'
120
- // 照片为空时不渲染占位块:灰底「无照片」零信息却占卡片最大面积(#817 seq 45 的 ⑤)。
121
- + (it.photo === '' ? '' : '<div class="x-photo">' + escapeHtml(it.photo) + '</div>')
122
- + '<div class="x-name">' + escapeHtml(it.name)
123
- + '<span class="x-state ' + (it.overdue ? 'over' : 'days') + '">已等 ' + it.days + ' 天' + (it.overdue ? ' 超时' : '') + '</span></div>'
124
- + '<div class="x-meta">' + escapeHtml(it.category_name) + ' ' + escapeHtml(it.location) + ' 数量 ' + it.quantity + '</div></div></div>').join('')
125
- + '</div><div class="x-actions">'
126
- + '<button class="x-btn" data-action-id="x-receive" data-t="' + escapeHtml(P_RECEIVE) + '" onclick="xReceive(this)">我收到了</button>'
127
- + '<button class="x-btn ghost" data-action-id="x-backup" data-t="' + escapeHtml(P_BACKUP) + '">收到的放备用</button>'
128
- + '<button class="x-btn ghost" data-action-id="x-new" data-t="' + escapeHtml(P_NEW) + '">新到物品去录入</button>'
129
- + '</div></section>';
130
- }
131
- else {
132
- body += '<section><div class="x-empty">当前没有快递中<br>新到的物品可以先录入<div class="x-actions" style="justify-content:center">'
133
- + '<button class="x-btn ghost" data-action-id="x-new" data-t="' + escapeHtml(P_NEW) + '">新到物品去录入</button>'
134
- + '</div></div></section>';
135
- }
136
- // #890:复制路径交给公共层共享运行时(`<!--SHARED-HELPERS-->` 槽的 `buildSharedHelpersJs`),
137
- // 不再页内自造 `xCopy`(无反馈/无 `catch`/无 `execCommand` 降级)。按钮带 `data-action-id`
138
- // + `data-t` 即由 document 委派复制;按当刻勾选现算的那一颗,用元素级 `onclick` 先把载荷写回
139
- // 自己的 `data-t`(目标阶段先于 document 冒泡),没勾选时置空并保留拦截提示。
140
- body += '<script>'
141
- + 'function xReceive(b){var s=[...document.querySelectorAll("#x-list input:checked")];if(!s.length){b.setAttribute("data-t","");alert("请先勾选收到的物品");return;}'
142
- + 'var ids=s.map(function(c){return c.getAttribute("data-id");}).join(",");var names=s.map(function(c){return c.getAttribute("data-name");}).join("、");'
143
- + 'b.setAttribute("data-t","请加载居家管家技能,帮我确认收货:"+names+" 编号["+ids+"]");}'
144
- + '</script>';
145
- // 主 operations 唯一复制区(envelope 投影;上下两分支旧按钮已删,只留这一处)。
146
- body += homeCopyArea({
147
- data: { envelope: env },
148
- log: { envelope: env, copyLog: homeCopyLog({ command: ctx?.command ?? 'home-cmd-read ' + PAGE_META.key, actionAt: ctx?.actionAt ?? homeNowStamp() }) },
149
- });
150
- const content = head
151
- + body
152
- + sectionOf('fields', '字段')
153
- + sectionOf('operations', '操作')
154
- + sectionOf('empty', '空态与异常')
155
- + sectionOf('status', '状态词')
156
- // 机审对账用原文(注释内,不进可见文案,避免单字母占位符触发英文裸词):
157
- + '<!--REQUIRED:快递中物品(名称/已等N天/是否超时)-->';
158
- return fillTemplate(template, content);
159
- }
160
- //# sourceMappingURL=express.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"express.js","sourceRoot":"","sources":["../../../src/express/pages/express.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { Envelope } from 'base-link-core';
2
- export declare const FAMILY: "list";
3
- export declare const PAGE_META: {
4
- readonly domain: "express";
5
- readonly family: "list";
6
- readonly key: "home.shopping.query";
7
- readonly shape: "list";
8
- readonly preset: Record<string, unknown>;
9
- readonly rows: readonly {
10
- readonly key: string;
11
- readonly preset: Record<string, unknown>;
12
- }[];
13
- };
14
- export declare const REQUIRED_BLOCKS: {
15
- readonly fields: readonly string[];
16
- readonly operations: readonly string[];
17
- readonly empty: readonly string[];
18
- readonly status: readonly string[];
19
- };
20
- export declare function renderFamilyPage(env: Envelope, ctx?: {
21
- readonly command?: string;
22
- readonly actionAt?: string;
23
- }): string;
24
- //# sourceMappingURL=list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/express/pages/list.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,MAAM,EAAG,MAAe,CAAC;AAEtC,eAAO,MAAM,SAAS;;;;;qBAKO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;mBACgB,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE;CACvI,CAAC;AAEX,eAAO,MAAM,eAAe,EA0BvB;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AAqCF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAuGvH"}
@@ -1,167 +0,0 @@
1
- // express能力·list页装配(#805 脚手架生成,#812 域票填真内容)。
2
- //
3
- // 一族一个装配件:模板 `templates/express/list.html` 的装配入口。
4
- // 必需块原文=契约附录(事实源),登记表 `scripts/lib/page-blocks.mjs` 由同一附录派生;
5
- // 三方(本件/登记表/附录)由 `test/scaffold.test.mjs` 逐族对账,走散即红。
6
- // 空态与异常态位:`renderFamilyPage` 按 REQUIRED_BLOCKS.empty 原样输出槽位,域票把真空态填进来。
7
- // 数据形状声明:PAGE_META(主命令/形状/场景预设示例/服务场景清单)。
8
- import { readFileSync } from 'node:fs';
9
- import { fillTemplate, escapeHtml, homeCopyArea, homeCopyLog, homeNowStamp } from '../../render/index.js';
10
- export const FAMILY = 'list';
11
- export const PAGE_META = {
12
- domain: 'express',
13
- family: FAMILY,
14
- key: 'home.shopping.query',
15
- shape: 'list',
16
- preset: { "kind": "list" },
17
- rows: [{ "key": "home.shopping.query", "preset": { "kind": "list" } }],
18
- };
19
- export const REQUIRED_BLOCKS = {
20
- "empty": [
21
- "空态:清单是空的+试试引导",
22
- "拦截态:请先勾选买到的条目",
23
- "异常:数据解析失败"
24
- ],
25
- "fields": [
26
- "待买条目(名称/数量/来源标注)",
27
- "清单内查重结果",
28
- "摘要"
29
- ],
30
- "operations": [
31
- "我买到了",
32
- "清单外新买的",
33
- "给已有物品补货",
34
- "记一笔要买的",
35
- "检测家里缺什么",
36
- "清掉已买记录",
37
- "勾选",
38
- "复制数据",
39
- "复制日志"
40
- ],
41
- "status": [
42
- "待买",
43
- "已买"
44
- ]
45
- };
46
- function sectionOf(group, title) {
47
- const items = REQUIRED_BLOCKS[group].map((b) => '<li data-need="' + escapeHtml(b) + '">' + escapeHtml(b) + '</li>').join('');
48
- return '<section hidden data-block="' + group + '"><h2>' + title + '</h2><ul>' + items + '</ul></section>';
49
- }
50
- function asListItems(env) {
51
- const d = env.data;
52
- const raw = d.items ?? [];
53
- return raw.map((r) => {
54
- const o = r;
55
- return {
56
- id: Number(o.id ?? 0),
57
- name: String(o.name ?? ''),
58
- quantity: Number(o.quantity ?? 1),
59
- routine: String(o.routine ?? ''),
60
- checked: Number(o.checked ?? 0),
61
- sourceLabel: String(o.sourceLabel ?? (o.routine ? '例行' : '手动记的')),
62
- statusLabel: String(o.statusLabel ?? (Number(o.checked ?? 0) ? '已买' : '待买')),
63
- };
64
- }).filter((x) => x.name);
65
- }
66
- // 装配入口:真 envelope(真命令链产出)+本族模板 → 同形整页。
67
- // fail-closed:模板缺失/标记异常(fillTemplate 内抛)不返空页。
68
- // 复制区走共用件(卡路里同款三格式+六段日志);`ctx.command` 由交付链供给(含 params),直调缺省按本族主 key。
69
- export function renderFamilyPage(env, ctx) {
70
- const template = readFileSync(new URL('../../../templates/express/list.html', import.meta.url), 'utf8');
71
- const head = '<div class="fam-head"><span>快递购物</span>'
72
- + '<span>购物清单</span></div>';
73
- const items = asListItems(env);
74
- const pending = items.filter((x) => !x.checked);
75
- const done = items.filter((x) => x.checked);
76
- const seen = new Map();
77
- for (const it of pending)
78
- seen.set(it.name, (seen.get(it.name) ?? 0) + 1);
79
- const dupes = [...seen.entries()].filter(([, n]) => n > 1).map(([n]) => n);
80
- const style = '<style>'
81
- + '.x-lead{color:#3a3a3c;font-size:15px;line-height:1.7;margin:12px 0}'
82
- + '.x-metrics{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}'
83
- + '.x-pill{border:1px solid #ddd;border-radius:999px;padding:6px 14px;font-size:13px;background:#fbfbfd}'
84
- + '.x-row{display:flex;gap:12px;align-items:center;padding:12px 4px;border-bottom:1px solid #eee;flex-wrap:wrap}'
85
- + '.x-name{font-weight:700;flex:1;min-width:140px;word-break:break-word}'
86
- + '.x-note{color:#666;font-size:13px;margin-top:4px}'
87
- + '.x-tag{background:#eef5ff;color:#0a63ce;border-radius:999px;padding:3px 10px;font-size:12px;margin-left:8px}'
88
- + '.x-tag.manual{background:#f2f2f7;color:#666}'
89
- + '.x-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}'
90
- + '.x-btn{border:none;background:#007aff;color:#fff;border-radius:999px;padding:12px 18px;font-weight:700;min-height:44px;font-size:15px}'
91
- + '.x-btn.alt{background:#f2f2f7;color:#111;border:1px solid #ddd}'
92
- + '.x-btn.ghost{background:#fff;color:#007aff;border:1px solid #007aff}'
93
- + '.x-btn.danger{background:#fff;color:#c00;border:1px solid #ffb4ae}'
94
- + '.x-check{width:44px;height:44px;flex:none;appearance:none;border:1.5px solid #c7c7cc;border-radius:12px;background:#fff center/22px 22px no-repeat;margin:0 6px 0 0;vertical-align:middle}.x-check:checked{border-color:#0a63ce;background-color:#0a63ce;background-image:url(\'data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23fff%22 stroke-width=%223%22><path d=%22M4 12l6 6L20 6%22/></svg>\')}'
95
- + '.x-empty{text-align:center;color:#666;padding:26px 0;line-height:2}'
96
- // #817(③双端不塌):390 档原来把整行改成竖排,44px 勾选件独占首行、行高 68→128px,一屏少看一条
97
- // ——窄屏仍走横排(勾选件在左、文字在右),只把动作区改成一列两格。
98
- + '@media(max-width:820px){.x-row{flex-direction:row;align-items:center}.x-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.x-btn{width:100%}}'
99
- + '</style>';
100
- const P_NEW = '请加载居家管家技能,帮我录入新买的物品';
101
- const P_RESTOCK = '请加载居家管家技能,帮我给物品补数量';
102
- const P_ADD = '请加载居家管家技能,帮我添加购物清单条目';
103
- const P_MISSING = '请加载居家管家技能,帮我检测缺货';
104
- const P_CLEAN = '请加载居家管家技能,帮我清理已买的购物清单条目';
105
- // #890:「我买到了」的初始载荷(点后由页内 `onclick` 按当刻勾选改写 `data-t`)。
106
- const P_CHECK = '请加载居家管家技能,帮我标记购物清单条目已买到';
107
- let body = style;
108
- // #890(说明句与真实行为不符):原文写「点下方的按钮划掉」——点下方那颗只把一句指令复制进剪贴板,
109
- // 页上不会划掉任何条目;划掉是回到对话里让助手执行的那一步。改成两句都说得上的说法。
110
- body += '<p class="x-lead">勾选买到的条目,点「我买到了」复制指令</p>';
111
- body += '<div class="x-metrics">'
112
- + '<span class="x-pill">待买 ' + pending.length + ' 件</span>'
113
- + '<span class="x-pill">已买 ' + done.length + ' 件</span>'
114
- + '<span class="x-pill">查重 ' + dupes.length + ' 组</span>'
115
- + '</div>';
116
- if (dupes.length) {
117
- body += '<section><h2>清单内查重</h2><div>'
118
- + dupes.map((n) => '<span class="x-pill">别买重 ' + escapeHtml(n) + ' 在清单中出现多次,建议合并为一条</span>').join('')
119
- + '</div></section>';
120
- }
121
- if (pending.length) {
122
- body += '<section><h2>待买条目</h2><div id="x-list">'
123
- + pending.map((it) => '<div class="x-row"><input class="x-check" type="checkbox" data-id="' + it.id + '" data-name="' + escapeHtml(it.name) + '" data-qty="' + it.quantity + '">'
124
- + '<div style="flex:1"><div class="x-name">' + escapeHtml(it.name)
125
- + '<span class="x-tag' + (it.routine ? '' : ' manual') + '">' + escapeHtml(it.sourceLabel) + '</span>'
126
- + '<span class="x-tag manual">' + escapeHtml(it.statusLabel) + '</span></div>'
127
- // #817:来源标注位已说「例行」,注里不再写「周期 例行」——同一事实两遍。
128
- + '<div class="x-note">数量 ' + it.quantity + '</div></div></div>').join('')
129
- + '</div></section>';
130
- body += '<section><div class="x-actions">'
131
- + '<button class="x-btn" data-action-id="x-check" data-t="' + escapeHtml(P_CHECK) + '" onclick="xCheck(this)">我买到了</button>'
132
- + '<button class="x-btn ghost" data-action-id="x-new" data-t="' + escapeHtml(P_NEW) + '">清单外新买的</button>'
133
- + '<button class="x-btn ghost" data-action-id="x-restock" data-t="' + escapeHtml(P_RESTOCK) + '">给已有物品补数量</button>'
134
- + '<button class="x-btn ghost" data-action-id="x-add" data-t="' + escapeHtml(P_ADD) + '">记一笔要买的</button>'
135
- + '<button class="x-btn ghost" data-action-id="x-missing" data-t="' + escapeHtml(P_MISSING) + '">看看家里缺什么</button>'
136
- + '<button class="x-btn danger" data-action-id="x-clean" data-t="' + escapeHtml(P_CLEAN) + '">清掉已买记录</button>'
137
- + '</div></section>';
138
- }
139
- else {
140
- body += '<section><div class="x-empty">清单是空的<br>可以先看看家里缺什么,或者记一笔要买的<div class="x-actions" style="justify-content:center">'
141
- + '<button class="x-btn ghost" data-action-id="x-missing" data-t="' + escapeHtml(P_MISSING) + '">看看家里缺什么</button>'
142
- + '<button class="x-btn ghost" data-action-id="x-add" data-t="' + escapeHtml(P_ADD) + '">记一笔要买的</button>'
143
- + '</div></div></section>';
144
- }
145
- // #890:复制路径交给公共层共享运行时(`<!--SHARED-HELPERS-->` 槽的 `buildSharedHelpersJs`),
146
- // 不再页内自造 `xCopy`:按钮带 `data-action-id` + `data-t` 即由 document 委派复制,
147
- // 双通道复制 + toast + `execCommand` 降级都走共用件。按当刻勾选现算的那一颗,用元素级
148
- // `onclick` 先把载荷写回自己的 `data-t`(目标阶段先于 document 冒泡),没勾选时置空并保留拦截提示。
149
- body += '<script>'
150
- + 'function xCheck(b){var s=[...document.querySelectorAll("#x-list input:checked")];if(!s.length){b.setAttribute("data-t","");alert("请先勾选买到的条目");return;}'
151
- + 'var ids=s.map(function(c){return c.getAttribute("data-id");}).join(",");var names=s.map(function(c){return c.getAttribute("data-name");}).join("、");'
152
- + 'b.setAttribute("data-t","请加载居家管家技能,帮我标记购物清单条目已买到:"+names+" 编号["+ids+"]");}'
153
- + '</script>';
154
- // 主 operations 唯一复制区(envelope 投影;旧标题计数按钮已删,只留这一处)。
155
- body += homeCopyArea({
156
- data: { envelope: env },
157
- log: { envelope: env, copyLog: homeCopyLog({ command: ctx?.command ?? 'home-cmd-read ' + PAGE_META.key, actionAt: ctx?.actionAt ?? homeNowStamp() }) },
158
- });
159
- const content = head
160
- + body
161
- + sectionOf('fields', '字段')
162
- + sectionOf('operations', '操作')
163
- + sectionOf('empty', '空态与异常')
164
- + sectionOf('status', '状态词');
165
- return fillTemplate(template, content);
166
- }
167
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/express/pages/list.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { Envelope } from 'base-link-core';
2
- export declare const FAMILY: "missing";
3
- export declare const PAGE_META: {
4
- readonly domain: "express";
5
- readonly family: "missing";
6
- readonly key: "home.shopping.query";
7
- readonly shape: "list";
8
- readonly preset: Record<string, unknown>;
9
- readonly rows: readonly {
10
- readonly key: string;
11
- readonly preset: Record<string, unknown>;
12
- }[];
13
- };
14
- export declare const REQUIRED_BLOCKS: {
15
- readonly fields: readonly string[];
16
- readonly operations: readonly string[];
17
- readonly empty: readonly string[];
18
- readonly status: readonly string[];
19
- };
20
- export declare function renderFamilyPage(env: Envelope, ctx?: {
21
- readonly command?: string;
22
- readonly actionAt?: string;
23
- }): string;
24
- //# sourceMappingURL=missing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"missing.d.ts","sourceRoot":"","sources":["../../../src/express/pages/missing.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,MAAM,EAAG,SAAkB,CAAC;AAEzC,eAAO,MAAM,SAAS;;;;;qBAKU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;mBACgB,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE;CAC1I,CAAC;AAEX,eAAO,MAAM,eAAe,EAuBvB;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AAwCF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAmFvH"}
@@ -1,146 +0,0 @@
1
- // express能力·missing页装配(#805 脚手架生成,#812 域票填真内容)。
2
- //
3
- // 一族一个装配件:模板 `templates/express/missing.html` 的装配入口。
4
- // 必需块原文=契约附录(事实源),登记表 `scripts/lib/page-blocks.mjs` 由同一附录派生;
5
- // 三方(本件/登记表/附录)由 `test/scaffold.test.mjs` 逐族对账,走散即红。
6
- // 空态与异常态位:`renderFamilyPage` 按 REQUIRED_BLOCKS.empty 原样输出槽位,域票把真空态填进来。
7
- // 数据形状声明:PAGE_META(主命令/形状/场景预设示例/服务场景清单)。
8
- import { readFileSync } from 'node:fs';
9
- import { fillTemplate, escapeHtml, homeCopyArea, homeCopyLog, homeNowStamp } from '../../render/index.js';
10
- export const FAMILY = 'missing';
11
- export const PAGE_META = {
12
- domain: 'express',
13
- family: FAMILY,
14
- key: 'home.shopping.query',
15
- shape: 'list',
16
- preset: { "kind": "missing" },
17
- rows: [{ "key": "home.shopping.query", "preset": { "kind": "missing" } }],
18
- };
19
- export const REQUIRED_BLOCKS = {
20
- "empty": [
21
- "空态:库存充足没有缺货物品",
22
- "拦截态:请先勾选缺货物品",
23
- "异常:数据解析失败"
24
- ],
25
- "fields": [
26
- "缺货物品(物品/当前数量/阈值/建议量)",
27
- "检测范围",
28
- "摘要"
29
- ],
30
- "operations": [
31
- "勾选",
32
- "加入购物清单",
33
- "按范围检测",
34
- "设置阈值",
35
- "复制数据",
36
- "复制日志"
37
- ],
38
- "status": [
39
- "在家",
40
- "备用"
41
- ]
42
- };
43
- function sectionOf(group, title) {
44
- const items = REQUIRED_BLOCKS[group].map((b) => '<li data-need="' + escapeHtml(b) + '">' + escapeHtml(b) + '</li>').join('');
45
- return '<section hidden data-block="' + group + '"><h2>' + title + '</h2><ul>' + items + '</ul></section>';
46
- }
47
- function asMissing(env) {
48
- const d = env.data;
49
- const raw = d.items ?? [];
50
- const items = raw.map((r) => {
51
- const o = r;
52
- return {
53
- id: Number(o.id ?? 0),
54
- name: String(o.name ?? ''),
55
- current: Number(o.current ?? 0),
56
- threshold: Number(o.threshold ?? 1),
57
- threshold_source: String(o.threshold_source ?? '囤货设置'),
58
- status: String(o.status ?? ''),
59
- suggest: Number(o.suggest ?? 1),
60
- category_name: String(o.category_name ?? ''),
61
- };
62
- }).filter((x) => x.name);
63
- return { items, scope: String(d.scope ?? '全屋') };
64
- }
65
- // 装配入口:真 envelope(真命令链产出)+本族模板 → 同形整页。
66
- // fail-closed:模板缺失/标记异常(fillTemplate 内抛)不返空页。
67
- // 复制区走共用件(卡路里同款三格式+六段日志);`ctx.command` 由交付链供给(含 params),直调缺省按本族主 key。
68
- export function renderFamilyPage(env, ctx) {
69
- const template = readFileSync(new URL('../../../templates/express/missing.html', import.meta.url), 'utf8');
70
- const head = '<div class="fam-head"><span>快递购物</span>'
71
- + '<span>缺货检测</span></div>';
72
- const { items, scope } = asMissing(env);
73
- const style = '<style>'
74
- + '.x-lead{color:#3a3a3c;font-size:15px;line-height:1.7;margin:12px 0;text-wrap:pretty}'
75
- + '.x-metrics{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}'
76
- + '.x-pill{border:1px solid #ddd;border-radius:999px;padding:6px 14px;font-size:13px;background:#fbfbfd}'
77
- + '.x-row{display:flex;gap:12px;align-items:center;padding:12px 4px;border-bottom:1px solid #eee;flex-wrap:wrap}'
78
- + '.x-name{font-weight:700;flex:1;min-width:140px;word-break:break-word}'
79
- + '.x-meta{color:#666;font-size:13px;margin-top:4px}'
80
- + '.x-suggest{background:#f5f8ff;border-radius:12px;padding:6px 12px;font-size:14px;white-space:nowrap}'
81
- + '.x-suggest b{color:#0a63ce}'
82
- + '.x-state{display:inline-block;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;margin-left:8px}'
83
- + '.x-state.low{background:#fff2df;color:#b36b00}.x-state.empty{background:#ffe8e6;color:#c00}'
84
- + '.x-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}'
85
- + '.x-btn{border:none;background:#007aff;color:#fff;border-radius:999px;padding:12px 18px;font-weight:700;min-height:44px;font-size:15px}'
86
- + '.x-btn.alt{background:#f2f2f7;color:#111;border:1px solid #ddd}'
87
- + '.x-btn.ghost{background:#fff;color:#007aff;border:1px solid #007aff}'
88
- + '.x-check{width:44px;height:44px;flex:none;appearance:none;border:1.5px solid #c7c7cc;border-radius:12px;background:#fff center/22px 22px no-repeat;margin:0 6px 0 0;vertical-align:middle}.x-check:checked{border-color:#0a63ce;background-color:#0a63ce;background-image:url(\'data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23fff%22 stroke-width=%223%22><path d=%22M4 12l6 6L20 6%22/></svg>\')}'
89
- + '.x-empty{text-align:center;color:#666;padding:26px 0;line-height:2}'
90
- + '@media(max-width:820px){.x-row{align-items:center}.x-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.x-btn{width:100%}}'
91
- + '</style>';
92
- const P_SCOPE = '请加载居家管家技能,帮我按范围检测缺货';
93
- const P_TH = '请加载居家管家技能,帮我查看囤货并设置阈值';
94
- // #890:「加入购物清单」的初始载荷(点后由页内 `onclick` 按当刻勾选改写 `data-t`)。
95
- const P_LIST = '请加载居家管家技能,帮我将缺货物品加入购物清单';
96
- let body = style;
97
- // #817(③双端不塌)第二波:说明句压到 390 档一行放得下(20 字)——原来 25 字在 390 档折行后
98
- // 第二行只剩一个「出」孤字。
99
- body += '<p class="x-lead">勾选后加入购物清单,建议买量按两倍阈值算</p>';
100
- body += '<div class="x-metrics">'
101
- + '<span class="x-pill">缺货 ' + items.length + ' 件</span>'
102
- + '<span class="x-pill">检测范围 ' + escapeHtml(scope) + '</span>'
103
- + '<span class="x-pill">阈值来源 囤货设置</span>'
104
- + '</div>';
105
- if (items.length) {
106
- body += '<section><h2>缺货物品</h2><div id="x-list">'
107
- + items.map((it) => '<div class="x-row"><input class="x-check" type="checkbox" data-id="' + it.id + '" data-name="' + escapeHtml(it.name) + '" data-suggest="' + it.suggest + '">'
108
- + '<div style="flex:1"><div class="x-name">' + escapeHtml(it.name)
109
- + '<span class="x-state ' + (it.status === '空' ? 'empty' : 'low') + '">' + escapeHtml(it.status) + '</span></div>'
110
- + '<div class="x-meta">' + escapeHtml(it.category_name) + ' 当前 ' + it.current + ' 阈值 ' + it.threshold + '</div></div>'
111
- + '<span class="x-suggest">建议买 <b>' + it.suggest + '</b></span></div>').join('')
112
- + '</div><div class="x-actions">'
113
- + '<button class="x-btn" data-action-id="x-to-list" data-t="' + escapeHtml(P_LIST) + '" onclick="xToList(this)">加入购物清单</button>'
114
- + '<button class="x-btn ghost" data-action-id="x-scope" data-t="' + escapeHtml(P_SCOPE) + '">按范围检测</button>'
115
- + '<button class="x-btn ghost" data-action-id="x-th" data-t="' + escapeHtml(P_TH) + '">设置阈值</button>'
116
- + '</div></section>';
117
- }
118
- else {
119
- body += '<section><div class="x-empty">库存充足没有缺货<br>范围 ' + escapeHtml(scope) + '<div class="x-actions" style="justify-content:center">'
120
- + '<button class="x-btn ghost" data-action-id="x-th" data-t="' + escapeHtml(P_TH) + '">设置阈值</button>'
121
- + '</div></div></section>';
122
- }
123
- // #890:复制路径交给公共层共享运行时(`<!--SHARED-HELPERS-->` 槽的 `buildSharedHelpersJs`)——
124
- // 页内自造 `xCopy`(无反馈/无 `catch`/无 `execCommand` 降级)与 #886 收口时漏删的
125
- // `xCopyData`/`xCopyLog` 两个空壳(`function (){}`,无调用方)一并清掉。接法=按钮带
126
- // `data-action-id` + `data-t`;按当刻勾选现算的那一颗,用元素级 `onclick` 先把载荷写回自己的
127
- // `data-t`(目标阶段先于 document 冒泡),没勾选时置空并保留拦截提示。
128
- body += '<script>'
129
- + 'function xToList(b){var s=[...document.querySelectorAll("#x-list input:checked")];if(!s.length){b.setAttribute("data-t","");alert("请先勾选缺货物品");return;}'
130
- + 'var ids=s.map(function(c){return c.getAttribute("data-id");}).join(",");var names=s.map(function(c){return c.getAttribute("data-name")+"建议买"+c.getAttribute("data-suggest");}).join("、");'
131
- + 'b.setAttribute("data-t","请加载居家管家技能,帮我将缺货物品加入购物清单:"+names+" 编号["+ids+"]");}'
132
- + '</script>';
133
- // 主 operations 唯一复制区(envelope 投影;上下两分支旧按钮已删,只留这一处)。
134
- body += homeCopyArea({
135
- data: { envelope: env },
136
- log: { envelope: env, copyLog: homeCopyLog({ command: ctx?.command ?? 'home-cmd-read ' + PAGE_META.key, actionAt: ctx?.actionAt ?? homeNowStamp() }) },
137
- });
138
- const content = head
139
- + body
140
- + sectionOf('fields', '字段')
141
- + sectionOf('operations', '操作')
142
- + sectionOf('empty', '空态与异常')
143
- + sectionOf('status', '状态词');
144
- return fillTemplate(template, content);
145
- }
146
- //# sourceMappingURL=missing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"missing.js","sourceRoot":"","sources":["../../../src/express/pages/missing.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { Envelope } from 'base-link-core';
2
- export declare const FAMILY: "stock";
3
- export declare const PAGE_META: {
4
- readonly domain: "express";
5
- readonly family: "stock";
6
- readonly key: "home.shopping.query";
7
- readonly shape: "list";
8
- readonly preset: Record<string, unknown>;
9
- readonly rows: readonly {
10
- readonly key: string;
11
- readonly preset: Record<string, unknown>;
12
- }[];
13
- };
14
- export declare const REQUIRED_BLOCKS: {
15
- readonly fields: readonly string[];
16
- readonly operations: readonly string[];
17
- readonly empty: readonly string[];
18
- readonly status: readonly string[];
19
- };
20
- export declare function renderFamilyPage(env: Envelope, ctx?: {
21
- readonly command?: string;
22
- readonly actionAt?: string;
23
- }): string;
24
- //# sourceMappingURL=stock.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stock.d.ts","sourceRoot":"","sources":["../../../src/express/pages/stock.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,MAAM,EAAG,OAAgB,CAAC;AAEvC,eAAO,MAAM,SAAS;;;;;qBAKQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;mBACgB,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE;CACxI,CAAC;AAEX,eAAO,MAAM,eAAe,EA0BvB;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,CAAC;AA2CF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAwGvH"}