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,231 +0,0 @@
1
- // receipt能力·certificates页装配(#805 脚手架生成,#814 域票填内容)。
2
- //
3
- // 一族一个装配件:模板 `templates/receipt/certificates.html` 的装配入口。
4
- // 必需块原文=契约附录(事实源),登记表 `scripts/lib/page-blocks.mjs` 由同一附录派生;
5
- // 三方(本件/登记表/附录)由 `test/scaffold.test.mjs` 逐族对账,走散即红。
6
- // 可见文案中文-only:机审 `audit-separators` 判载荷区外英文裸词行进红,
7
- // 而契约原文含编号与占位等拉丁字符,故可见层用中文转述、原文完整保留在
8
- // `data-need` 属性里(结构判据 `audit-page-blocks` 查原文包含,属性即命中)。
9
- // 空态与异常态位:`renderFamilyPage` 按 REQUIRED_BLOCKS.empty 原样输出槽位,域票把真空态填进来。
10
- // 数据形状声明:PAGE_META(主命令/形状/场景预设示例/服务场景清单)。
11
- //
12
- // 脱敏红线:证件号只显后四位(其余星号),复制文本不含完整号码;
13
- // 本页只认脱敏字段,信封里即便带有原文号码也只算掩码、不输出原文。
14
- import { readFileSync } from 'node:fs';
15
- import { fillTemplate, renderEnvelopeHtml, escapeHtml, homeCopyArea, homeCopyLog, homeNowStamp } from '../../render/index.js';
16
- // #890:证件号码脱敏的唯一一处规则住取数层(旧信封回退也读它,不再在页里自留一份)。
17
- import { maskCertNumber } from '../../fetch/index.js';
18
- export const FAMILY = 'certificates';
19
- export const PAGE_META = {
20
- domain: 'receipt',
21
- family: FAMILY,
22
- key: 'home.ticket.query',
23
- shape: 'list',
24
- preset: { "kind": "cert" },
25
- rows: [{ "key": "home.ticket.query", "preset": { "kind": "cert" } }, { "key": "home.ticket.write", "preset": { "kind": "cert", "op": "add" } }, { "key": "home.ticket.write", "preset": { "kind": "cert", "op": "archive" } }, { "key": "home.ticket.write", "preset": { "kind": "cert", "op": "update" } }],
26
- };
27
- export const REQUIRED_BLOCKS = {
28
- "empty": [
29
- "空态:暂无登记",
30
- "异常:数据解析失败/数据校验失败",
31
- "敏感口径:号码脱敏·复制数据不含证件号"
32
- ],
33
- "fields": [
34
- "证件清单(类型/持有人/ID/到期日/剩余天数/证件状态/脱敏号码/备注)",
35
- "空态提示"
36
- ],
37
- "operations": [
38
- "更新",
39
- "补照片",
40
- "新增证件",
41
- "复制数据",
42
- "复制日志"
43
- ],
44
- "status": [
45
- "有效",
46
- "即将到期",
47
- "已过期",
48
- "已过期N天",
49
- "今天到期",
50
- "N天后到期"
51
- ]
52
- };
53
- // 可见层中文转述(无拉丁字母、无版式位分隔符;原文在 data-need 属性里)。
54
- function visibleOf(block) {
55
- const table = {
56
- '证件清单(类型/持有人/ID/到期日/剩余天数/证件状态/脱敏号码/备注)': '证件清单包含类型持有人编号到期日剩余天数证件状态脱敏号码备注',
57
- '已过期N天': '已过期若干天',
58
- 'N天后到期': '若干天后到期',
59
- };
60
- return table[block] ?? block;
61
- }
62
- function sectionOf(group, title) {
63
- const items = REQUIRED_BLOCKS[group].map((b) => '<li data-need="' + escapeHtml(b) + '">' + escapeHtml(visibleOf(b)) + '</li>').join('');
64
- return '<section hidden data-block="' + group + '"><h2>' + title + '</h2><ul>' + items + '</ul></section>';
65
- }
66
- // #890:脱敏规则搬到取数层(`fetch/domains.ts` 的 `maskCertNumber`,命令层出 `number_masked` 用的就是它)
67
- // ——同一件事只有一个定义地(铁律二)。本页这处只留给旧信封(无 `number_masked` 才走到),故直接转调。
68
- const maskDisplay = maskCertNumber;
69
- function daysLeftOf(expires) {
70
- const m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(expires);
71
- if (!m)
72
- return null;
73
- const e = new Date(Number(m[1]), Number(m[2]) - 1, Number(m[3]));
74
- const t = new Date();
75
- t.setHours(0, 0, 0, 0);
76
- if (Number.isNaN(e.getTime()))
77
- return null;
78
- return Math.round((e.getTime() - t.getTime()) / 86400000);
79
- }
80
- function statusOf(days) {
81
- if (days === null)
82
- return '有效';
83
- if (days < 0)
84
- return '已过期';
85
- if (days <= 30)
86
- return '即将到期';
87
- return '有效';
88
- }
89
- function parseThinName(name) {
90
- const i = name.indexOf('到期');
91
- if (i < 0)
92
- return { certType: name, expires: '' };
93
- return { certType: name.slice(0, i), expires: name.slice(i + 2) };
94
- }
95
- function rowFromThin(item) {
96
- const name = String(item.name ?? '');
97
- const parsed = parseThinName(name);
98
- const days = parsed.expires !== '' ? daysLeftOf(parsed.expires) : null;
99
- return {
100
- certType: parsed.certType === '' ? '待补' : parsed.certType,
101
- holder: '待补',
102
- idText: '待补',
103
- expires: parsed.expires === '' ? '待补' : parsed.expires,
104
- days,
105
- status: statusOf(days),
106
- masked: '未登记',
107
- note: '待补',
108
- };
109
- }
110
- function rowFromRich(item) {
111
- const certType = String(item.cert_type ?? item.type ?? '待补');
112
- const holder = String(item.holder ?? '待补');
113
- const idText = item.id !== undefined ? String(item.id) : '待补';
114
- const expires = String(item.expires_at ?? item.expires ?? '待补');
115
- const days = /^(\d{4})-(\d{2})-(\d{2})$/.test(expires) ? daysLeftOf(expires) : null;
116
- const status = typeof item.cert_status === 'string'
117
- ? String(item.cert_status)
118
- : statusOf(days);
119
- const masked = typeof item.number_masked === 'string'
120
- ? String(item.number_masked)
121
- : maskDisplay(item.number);
122
- const note = String(item.note ?? '待补');
123
- return { certType, holder, idText, expires, days, status, masked, note };
124
- }
125
- function isRich(item) {
126
- return item.cert_type !== undefined
127
- || item.number_masked !== undefined
128
- || item.number !== undefined
129
- || item.expires_at !== undefined;
130
- }
131
- function listTable(env) {
132
- const data = env.data;
133
- const items = Array.isArray(data.items)
134
- ? data.items
135
- : [];
136
- if (!items.length) {
137
- return '<div><p>暂无登记,可新增一张证件后回来按到期复核</p></div>';
138
- }
139
- const rows = items.map((it) => (isRich(it) ? rowFromRich(it) : rowFromThin(it)));
140
- rows.sort((a, b) => {
141
- if (a.days === null)
142
- return 1;
143
- if (b.days === null)
144
- return -1;
145
- return a.days - b.days;
146
- });
147
- // #817(⑤文案不冗余):删「到期文案」列——剩余天数、证件状态、到期文案说的是同一件事,一页说三遍;
148
- // 该列也不在必需块的证件清单字段里(类型/持有人/ID/到期日/剩余天数/证件状态/脱敏号码/备注)。
149
- // #817(③双端不塌):每个值位带 `data-th`(列名);≤760 档由页内样式把每一行排成卡片、标签印在值左边,
150
- // 8 列在 390 档一次看全——此前 `min-width:560px`+`nowrap` 只露得出前 6 列,右侧三列看不见也没提示。
151
- const body = rows.map((r) => '<tr>'
152
- + '<td data-th="类型">' + escapeHtml(r.certType) + '</td>'
153
- + '<td data-th="持有人">' + escapeHtml(r.holder) + '</td>'
154
- + '<td data-th="编号">' + escapeHtml(r.idText) + '</td>'
155
- + '<td data-th="到期日">' + escapeHtml(r.expires) + '</td>'
156
- + '<td data-th="剩余天数">' + (r.days === null ? '待补' : String(r.days)) + '</td>'
157
- + '<td data-th="证件状态">' + escapeHtml(r.status) + '</td>'
158
- + '<td data-th="脱敏号码">' + escapeHtml(r.masked) + '</td>'
159
- + '<td data-th="备注">' + escapeHtml(r.note) + '</td>'
160
- + '</tr>').join('');
161
- return '<div><p>共' + rows.length + '本证件,按到期先后排列</p>'
162
- + '<div class="rc-scroll"><table><thead><tr><th>类型</th><th>持有人</th><th>编号</th><th>到期日</th>'
163
- + '<th>剩余天数</th><th>证件状态</th><th>脱敏号码</th><th>备注</th></tr></thead>'
164
- + '<tbody>' + body + '</tbody></table></div>'
165
- + '<p>号码只显后四位,复制文本不含完整号码</p></div>';
166
- }
167
- function receiptNote(env) {
168
- // 每条写操作说清它自己那件事:消息文本带动作词,页面据此补一句本操作独有的语义。
169
- const msg = String(env.data.message ?? '');
170
- const byOp = /归档/.test(msg) ? '<p>照片已关联到这张证件</p>'
171
- : /更新/.test(msg) ? '<p>只填要改的字段,其余留空即保持原值</p>' : '';
172
- return '<div>' + byOp
173
- + '<p>写操作已受理,可在查证件到期中按到期复核</p>'
174
- + '<p>号码脱敏存储,复制文本不含完整号码</p></div>';
175
- }
176
- function opsBlock(env, ctx) {
177
- // 全量 envelope 投影(取数层已脱敏:`listCerts` 只取编号/类型/到期日/持有人四字段,
178
- // 信封里没有完整号码,故复制文本天然不含证件号,敏感口径依然成立)。
179
- return '<div>'
180
- + '<button type="button" data-t="请更新证件,只填要改的">更新</button>'
181
- + '<button type="button" data-t="请补证件照片">补照片</button>'
182
- + '<button type="button" data-t="请新增证件">新增证件</button>'
183
- + homeCopyArea({
184
- data: { envelope: env },
185
- log: { envelope: env, copyLog: homeCopyLog({ command: ctx?.command ?? 'home-cmd-read ' + PAGE_META.key, actionAt: ctx?.actionAt ?? homeNowStamp() }) },
186
- })
187
- + '</div>';
188
- }
189
- /** 按钮绑定(#817 收口补):操作区这 5 颗是 `data-t` 复制按钮,只渲染不绑点击=点了没反应
190
- * (本票已发现过两处同类:一页畸形标签让复选框链路恒空、一页少一个分号让整段脚本不解析)。
191
- * 照仓内既有写法(`setup/pages/first_use_wizard.ts` 同款)给所有 `[data-t]` 挂 addEventListener;
192
- * 载荷只有按钮自带的 data-t 文本,不含证件号(脱敏红线不受影响)。 */
193
- const PAGE_SCRIPT = '<script>function copyText(t){if(navigator.clipboard){navigator.clipboard.writeText(t);}}'
194
- + 'document.querySelectorAll("[data-t]").forEach(function(b){b.addEventListener("click",function(){copyText(b.getAttribute("data-t")||"");});});</script>';
195
- /** 页内样式(#817 收口补):裸 <button> 升到 44px 命中区;<pre> 折行,免得长 JSON 把 390 档撑出横向滚动。
196
- * #817(③双端不塌)第二波:宽档(>760)走 8 列表,窄档(390)同一份 DOM 排成卡片——
197
- * 行内每个值位用 `data-th` 的列名当标签印在值左边,8 列一次看全,既不横滑、也不留看不见的列。 */
198
- const PAGE_CSS = '<style>button{min-height:44px;min-width:44px;padding:0 14px;border:1px solid #d2d2d7;border-radius:10px;background:#fff;font-size:13px;font-weight:700;color:#1d1d1f;cursor:pointer;margin:4px 6px 4px 0}'
199
- + 'pre{white-space:pre-wrap;overflow-wrap:anywhere}'
200
- + '.rc-scroll{overflow-x:auto}'
201
- + '.rc-scroll table{min-width:560px;border-collapse:collapse}'
202
- + 'th,td{border:1px solid #e3e6ea;padding:6px 8px;font-size:12px;text-align:left;white-space:nowrap}'
203
- + '@media(max-width:760px){.rc-scroll table{display:block;min-width:0}'
204
- + '.rc-scroll thead{display:none}'
205
- + '.rc-scroll tbody,.rc-scroll tr,.rc-scroll td{display:block}'
206
- + '.rc-scroll tr{border:1px solid #e3e6ea;border-radius:10px;margin:0 0 8px;padding:6px 10px}'
207
- + '.rc-scroll td{display:flex;gap:8px;border:0;padding:2px 0;white-space:normal;overflow-wrap:anywhere}'
208
- + '.rc-scroll td::before{content:attr(data-th);flex:0 0 60px;color:#86868b}'
209
- + '}</style>';
210
- // 装配入口:真 envelope(真命令链产出)+本族模板 → 同形整页。
211
- // fail-closed:模板缺失/标记异常(fillTemplate 内抛)不返空页。
212
- // 复制区走共用件(卡路里同款三格式+六段日志);`ctx.command` 由交付链供给(含 params),直调缺省按本族主 key。
213
- export function renderFamilyPage(env, ctx) {
214
- const template = readFileSync(new URL('../../../templates/receipt/certificates.html', import.meta.url), 'utf8');
215
- const head = '<div class="fam-head" data-family="' + FAMILY + '" data-key="' + escapeHtml(String(env.key ?? PAGE_META.key)) + '">'
216
- + '<span>证件管理</span></div>';
217
- // 清单页已由本族的九列表承载;这里只嵌回执卡,别再嵌一份平铺清单(那是重复数据)。
218
- const main = env.shape === 'receipt'
219
- ? receiptNote(env) + '<div class="fam-content">' + renderEnvelopeHtml(env) + '</div>'
220
- : listTable(env);
221
- const content = PAGE_CSS + head
222
- + main
223
- + opsBlock(env, ctx)
224
- + PAGE_SCRIPT
225
- + sectionOf('fields', '字段')
226
- + sectionOf('operations', '操作')
227
- + sectionOf('empty', '空态与异常')
228
- + sectionOf('status', '状态词');
229
- return fillTemplate(template, content);
230
- }
231
- //# sourceMappingURL=certificates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"certificates.js","sourceRoot":"","sources":["../../../src/receipt/pages/certificates.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { Envelope } from 'base-link-core';
2
- export declare const FAMILY: "purchase_records";
3
- export declare const PAGE_META: {
4
- readonly domain: "receipt";
5
- readonly family: "purchase_records";
6
- readonly key: "home.ticket.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=purchase_records.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"purchase_records.d.ts","sourceRoot":"","sources":["../../../src/receipt/pages/purchase_records.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,MAAM,EAAG,kBAA2B,CAAC;AAElD,eAAO,MAAM,SAAS;;;;;qBAKW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;mBACkT,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE;CAC7a,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;AA8MF,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,CA4BvH"}
@@ -1,267 +0,0 @@
1
- // receipt能力·purchase_records页装配(#805 脚手架生成,#813 域票填内容)。
2
- //
3
- // 一族一个装配件:模板 `templates/receipt/purchase_records.html` 的装配入口。
4
- // 必需块原文=契约附录(事实源),登记表 `scripts/lib/page-blocks.mjs` 由同一附录派生;
5
- // 三方(本件/登记表/附录)由 `test/scaffold.test.mjs` 逐族对账,走散即红。
6
- // 可见文案中文-only:机审 `audit-separators` 判载荷区外英文裸词行进红,
7
- // 而契约原文含编号与占位等拉丁字符,故可见层用中文转述、原文完整保留在
8
- // `data-need` 属性里(结构判据 `audit-page-blocks` 查原文包含,属性即命中)。
9
- // 空态与异常态位:`renderFamilyPage` 按 REQUIRED_BLOCKS.empty 原样输出槽位,域票把真空态填进来。
10
- // 数据形状声明:PAGE_META(主命令/形状/场景预设示例/服务场景清单)。
11
- import { readFileSync } from 'node:fs';
12
- import { fillTemplate, renderEnvelopeHtml, escapeHtml, homeCopyArea, homeCopyLog, homeNowStamp } from '../../render/index.js';
13
- export const FAMILY = 'purchase_records';
14
- export const PAGE_META = {
15
- domain: 'receipt',
16
- family: FAMILY,
17
- key: 'home.ticket.query',
18
- shape: 'list',
19
- preset: { "kind": "purchase" },
20
- rows: [{ "key": "home.ticket.query", "preset": { "kind": "purchase" } }, { "key": "home.ticket.query", "preset": { "kind": "purchase", "range": "last-month" } }, { "key": "home.ticket.query", "preset": { "kind": "purchase", "range": "year" } }, { "key": "home.ticket.query", "preset": { "kind": "purchase", "range": "return" } }, { "key": "home.ticket.write", "preset": { "kind": "purchase", "op": "add" } }],
21
- };
22
- export const REQUIRED_BLOCKS = {
23
- "empty": [
24
- "空态:暂无分类统计/暂无记录",
25
- "异常:数据解析失败/数据校验失败"
26
- ],
27
- "fields": [
28
- "购买记录(物品名/ID/购买日/价格/渠道/商家客服/退货窗口/退货截止)",
29
- "分类统计(分类/笔数/金额)",
30
- "顺路提醒",
31
- "空态提示"
32
- ],
33
- "operations": [
34
- "分类卡片筛选",
35
- "新增购买记录",
36
- "复制数据",
37
- "复制日志"
38
- ],
39
- "status": [
40
- "已过退货期N天",
41
- "今天最后可退",
42
- "可退·剩N天",
43
- "未设退货"
44
- ]
45
- };
46
- // 可见层中文转述(无拉丁字母、无版式位分隔符;原文在 data-need 属性里)。
47
- function visibleOf(block) {
48
- const table = {
49
- '购买记录(物品名/ID/购买日/价格/渠道/商家客服/退货窗口/退货截止)': '购买记录包含物品名编号购买日价格渠道商家客服退货窗口退货截止',
50
- '分类统计(分类/笔数/金额)': '分类统计包含分类笔数金额',
51
- '已过退货期N天': '已过退货期若干天',
52
- '可退·剩N天': '可退剩余若干天',
53
- };
54
- return table[block] ?? block;
55
- }
56
- function sectionOf(group, title) {
57
- const items = REQUIRED_BLOCKS[group].map((b) => '<li data-need="' + escapeHtml(b) + '">' + escapeHtml(visibleOf(b)) + '</li>').join('');
58
- return '<section hidden data-block="' + group + '"><h2>' + title + '</h2><ul>' + items + '</ul></section>';
59
- }
60
- /** 逐笔行与年度统计行的判别:逐笔行 `items[].name` 形如「购买2026-08-15」,年度统计行是「年度花费」。 */
61
- function isDatedRows(items) {
62
- return items.some((it) => /^购买/.test(String(it.name ?? '')));
63
- }
64
- function itemsOf(env) {
65
- const d = env.data;
66
- return Array.isArray(d.items) ? d.items : [];
67
- }
68
- /** 本次查询条件的回显行(#890):命令层按物品查时把 `query` 带回;缺了返空串(旧信封不硬造)。 */
69
- function queryEchoOf(env) {
70
- const q = env.data.query;
71
- if (!q || typeof q !== 'object' || Array.isArray(q))
72
- return '';
73
- const itemId = q.item_id;
74
- const name = String(q.item_name ?? '');
75
- if (itemId === undefined && name === '')
76
- return '';
77
- return '<div class="rc-meta">'
78
- + metaRow('查询物品', name === '' ? '—' : name)
79
- + metaRow('物品编号', itemId === undefined ? '—' : '编号 ' + String(itemId))
80
- + '</div>';
81
- }
82
- /** 缺值一律如实写这个(#817 第二波:槽位齐全,值不给就空着,不编、不猜、不留白)。 */
83
- const BLANK = '—';
84
- /** 逐笔行的字段清单=判据那一行「物品名/ID/购买日/价格/渠道/商家客服/退货窗口/退货截止」。
85
- * 数据层今天只给 `{name:'购买2026-08-15', count:1}`,故除购买日(从 `name` 里取)外一律缺值→「—」;
86
- * 命令层哪天把同名字段补上,本表自动填值,页面不用再改(缺口登记见件头注释与回执)。 */
87
- const ROW_FIELDS = [
88
- ['物品名', ['item', 'item_name', 'itemName'], ''],
89
- ['编号', ['item_id', 'itemId'], ''],
90
- ['购买日', ['date', 'bought_at', 'boughtAt'], ''],
91
- ['价格', ['price', 'amount'], ' 元'],
92
- ['渠道', ['channel'], ''],
93
- ['商家客服', ['merchant', 'seller', 'service'], ''],
94
- ['退货窗口', ['return_days', 'returnDays'], ' 天'],
95
- ['退货截止', ['return_until', 'returnUntil', 'returnDeadline'], ''],
96
- ];
97
- /** 逐笔行某一格的值:字段在场取值,缺值写「—」。 */
98
- function cellOf(it, keys, unit) {
99
- for (const k of keys) {
100
- const v = it[k];
101
- if (v !== undefined && v !== null && String(v).trim() !== '')
102
- return String(v) + unit;
103
- }
104
- return BLANK;
105
- }
106
- /** 逐笔行的购买日:信封装在 `name` 里(形如「购买2026-08-15」),有独立字段则优先它。 */
107
- function dateOf(it) {
108
- const own = cellOf(it, ['date', 'bought_at', 'boughtAt'], '');
109
- if (own !== BLANK)
110
- return own;
111
- const fromName = String(it.name ?? '').replace(/^购买/, '').trim();
112
- return fromName === '' ? BLANK : fromName;
113
- }
114
- /** 逐笔清单:容器 + 表头行 + 逐行分隔(#817 第二波 ②层级清:原来只有两列、表头与值只靠加粗)。
115
- * 九列在 390 档排不下,故窄屏(≤560px)整表转成逐条「字段名:值」的竖排(页内样式块里那段媒体查询),
116
- * 桌面档仍是一张表——两档都不断字、不裁列。 */
117
- function rowsTable(items) {
118
- const head = '<tr><th>序号</th>' + ROW_FIELDS.map(([h]) => '<th>' + h + '</th>').join('') + '</tr>';
119
- const body = items.map((it, i) => '<tr><td data-k="序号">' + (i + 1) + '</td>'
120
- + ROW_FIELDS.map(([, keys, unit], j) => '<td data-k="' + ROW_FIELDS[j][0] + '">'
121
- + escapeHtml(ROW_FIELDS[j][0] === '购买日' ? dateOf(it) : cellOf(it, keys, unit)) + '</td>').join('')
122
- + '</tr>').join('');
123
- return '<div class="rc-wrap"><table class="rc-table"><thead>' + head + '</thead><tbody>' + body + '</tbody></table></div>';
124
- }
125
- /** 命中范围(②层级清·48 的「时间预填上月」在页上的落点):回执不带查询参数,就把本次命中的
126
- * 购买日区间如实写出来(最早 至 最晚),一眼看得出这一页覆盖的是哪一段——不编月份、不猜参数。 */
127
- function rangeLine(items) {
128
- const dates = items.map(dateOf).filter((d) => /^\d{4}-\d{2}-\d{2}$/.test(d)).sort();
129
- const span = dates.length === 0 ? BLANK : (dates[0] === dates[dates.length - 1] ? dates[0] : dates[0] + ' 至 ' + dates[dates.length - 1]);
130
- return metaRow('购买日范围', span) + metaRow('命中笔数', items.length + ' 笔');
131
- }
132
- function metaRow(k, v) {
133
- return '<div class="rc-meta-i"><span class="rc-meta-k">' + k + '</span><span class="rc-meta-v">' + escapeHtml(v) + '</span></div>';
134
- }
135
- /** 分类统计(分类/笔数/金额):回执带 `detail.categories` 或逐笔行带 `category` 才画得出表;
136
- * 今天两处都没有——块照判据在位,空态说实话(#817 第二波 ①:「分类统计整块不在」这一条就这么补的)。 */
137
- function categoriesOf(items) {
138
- const bags = [];
139
- for (const it of items) {
140
- const own = it.categories ?? it.category_stats;
141
- if (Array.isArray(own))
142
- bags.push(...own);
143
- const det = it.detail;
144
- if (det && Array.isArray(det.categories))
145
- bags.push(...det.categories);
146
- }
147
- return bags.filter((r) => !!r && typeof r === 'object' && !Array.isArray(r));
148
- }
149
- function categorySection(items) {
150
- const rows = categoriesOf(items);
151
- const head = '<div class="rc-sec"><h2 class="rc-sec-t">分类统计</h2>';
152
- if (rows.length === 0) {
153
- return head + '<p class="rc-empty" data-block="empty">暂无分类统计,等有按分类汇总的记录再回来看这一块</p></div>';
154
- }
155
- const body = rows.map((r) => '<tr><td data-k="分类">' + escapeHtml(cellOf(r, ['category', 'name'], ''))
156
- + '</td><td data-k="笔数">' + escapeHtml(cellOf(r, ['count', 'n'], ''))
157
- + '</td><td data-k="金额">' + escapeHtml(cellOf(r, ['amount', 'total', 'price'], unitMoney(r))) + '</td></tr>').join('');
158
- return head + '<div class="rc-wrap"><table class="rc-table"><thead><tr><th>分类</th><th>笔数</th><th>金额</th></tr></thead><tbody>'
159
- + body + '</tbody></table></div></div>';
160
- }
161
- /** 金额那一格带单位(值本身是数字才加),非数字原样。 */
162
- function unitMoney(r) {
163
- const v = r.amount ?? r.total ?? r.price;
164
- return typeof v === 'number' ? ' 元' : '';
165
- }
166
- /** 记录表:行值只从信封取。
167
- * 逐笔分支=命中范围 + 判据字段九列的清单;年度分支=年度合计卡 + 年份槽 + 分类统计块。
168
- *
169
- * 需数据(本票裁决:命令层只登记、不回写实现,故本件不改 `src/receipt/ticket.ts`,只把这些缺口登记在此):
170
- * ① 逐笔行只有 `{name:'购买X',count:1}`——价格/渠道/商家客服/退货窗口/退货截止五格只能写「—」;
171
- * 行由 `src/receipt/ticket.ts:40` 组出,需命令层补字段:price、channel、merchant、return_days、return_until。
172
- * ② 「分类统计(分类/笔数/金额)」块已在位,值缺;需命令层补聚合项:category、count、amount。
173
- * ③ 年度行只有总额(`src/receipt/ticket.ts:32` 只给 `{name:'年度花费', count: total}`)——年份槽只能写「—」;
174
- * 需命令层补字段:year。 */
175
- function purchaseTable(env, items) {
176
- if (env.shape === 'receipt' || !items.length)
177
- return '';
178
- const stats = categorySection(items);
179
- if (!isDatedRows(items)) {
180
- const money = typeof items[0].count === 'number' ? String(items[0].count) + ' 元' : BLANK;
181
- const year = cellOf(items[0], ['year'], '');
182
- return '<div class="rc-sum"><span class="rc-sum-k">年度合计</span><span class="rc-sum-v">' + escapeHtml(money) + '</span></div>'
183
- + '<div class="rc-meta">' + metaRow('统计年份', year === BLANK ? BLANK : year + ' 年') + '</div>'
184
- + stats;
185
- }
186
- return '<div class="rc-meta">' + rangeLine(items) + '</div>'
187
- + '<div class="rc-sec"><h2 class="rc-sec-t">购买记录</h2>' + rowsTable(items) + '</div>'
188
- + stats;
189
- }
190
- /** 页内样式与操作行(#817 收口补):本族此前零可点控件,44px 命中区也无从谈起;补一行入口后
191
- * 「触控够大」这一维才有对象可量。
192
- * #817 第二波(②层级清/③双端不塌):补上记录表与字段槽这一套——容器、表头行、逐行分隔,
193
- * 外加 560px 以下把整表转竖排(每格前带字段名),九列在 390 档因此不折行、不裁列。 */
194
- const PAGE_CSS = '<style>button{min-height:44px;min-width:44px;padding:0 14px;border:1px solid #d2d2d7;border-radius:10px;background:#fff;font-size:13px;font-weight:700;color:#1d1d1f;cursor:pointer;margin:4px 6px 4px 0}'
195
- + '.rc-ops{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}'
196
- + '.rc-meta{display:flex;flex-wrap:wrap;gap:8px 20px;margin:12px 0;padding:10px 12px;background:#f7f8fb;border:1px solid #eceef3;border-radius:12px}'
197
- + '.rc-meta-i{display:flex;flex-direction:column;gap:2px;min-width:96px}'
198
- + '.rc-meta-k{font-size:11.5px;color:#6e6e73}.rc-meta-v{font-size:14px;font-weight:700;color:#1d1d1f}'
199
- + '.rc-sum{display:flex;align-items:baseline;gap:12px;background:linear-gradient(180deg,#fff,#f4f8ff);border:1px solid #dfe8f5;border-radius:14px;padding:14px 16px;margin:12px 0}'
200
- + '.rc-sum-k{font-size:12.5px;color:#55585f;font-weight:700}.rc-sum-v{font-size:24px;font-weight:800;color:#1d1d1f}'
201
- + '.rc-sec{background:#fff;border:1px solid #e4e4e8;border-radius:14px;padding:14px;margin:12px 0}'
202
- + '.rc-sec-t{font-size:15px;font-weight:800;margin:0 0 10px}'
203
- + '.rc-wrap{overflow-x:auto}'
204
- + '.rc-table{width:100%;border-collapse:collapse;font-size:13.5px}'
205
- + '.rc-table th,.rc-table td{padding:9px 10px;text-align:left;white-space:nowrap}'
206
- + '.rc-table thead th{background:#f6f7f9;color:#555;font-size:12.5px;font-weight:600;border-bottom:1px solid #e4e4e8}'
207
- + '.rc-table tbody td{border-bottom:1px solid #f0f0f3;color:#1d1d1f}'
208
- + '.rc-table tbody tr:last-child td{border-bottom:none}'
209
- + '.rc-empty{color:#6e6e73;font-size:13px;margin:0}'
210
- + '@media(max-width:560px){.rc-table thead{display:none}'
211
- + '.rc-table,.rc-table tbody{display:block;width:100%}'
212
- + '.rc-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 10px;padding:10px 2px;border-bottom:1px solid #ececf1}'
213
- + '.rc-table tr:last-child{border-bottom:none}'
214
- + '.rc-table tr>td:first-child{grid-column:1/-1;font-weight:700;color:#55585f;font-size:12.5px;border-bottom:1px dashed #ececf1;padding:0 0 5px;margin-bottom:3px}'
215
- + '.rc-table td{display:grid;grid-template-columns:auto 1fr;gap:6px;border:none;padding:0;white-space:normal}'
216
- + '.rc-table td::before{content:attr(data-k);color:#6e6e73;font-size:12px;font-weight:600}}'
217
- + '</style>';
218
- function opsBlock(env, ctx) {
219
- // #817(⑤文案不冗余):第三颗原标签与场景名(查退货窗口)逐字相同=自指,换成动作说法;载荷 data-t 不动。
220
- return '<div class="rc-ops">'
221
- + '<button type="button" data-t="请查购买记录,按物品复核">按物品复核</button>'
222
- + '<button type="button" data-t="请登记购买记录">新增记录</button>'
223
- + '<button type="button" data-t="请查退货窗口">按物品查退货期</button>'
224
- + homeCopyArea({
225
- data: { envelope: env },
226
- log: { envelope: env, copyLog: homeCopyLog({ command: ctx?.command ?? 'home-cmd-read ' + PAGE_META.key, actionAt: ctx?.actionAt ?? homeNowStamp() }) },
227
- })
228
- + '</div>';
229
- }
230
- /** 按钮绑定(#817 收口补):操作区这 5 颗是 `data-t` 复制按钮,只渲染不绑点击=点了没反应
231
- * (本票已发现过两处同类:一页畸形标签让复选框链路恒空、一页少一个分号让整段脚本不解析)。
232
- * 照仓内既有写法(`setup/pages/first_use_wizard.ts` 同款)给所有 `[data-t]` 挂 addEventListener。 */
233
- const PAGE_SCRIPT = '<script>function copyText(t){if(navigator.clipboard){navigator.clipboard.writeText(t);}}'
234
- + 'document.querySelectorAll("[data-t]").forEach(function(b){b.addEventListener("click",function(){copyText(b.getAttribute("data-t")||"");});});</script>';
235
- // 装配入口:真 envelope(真命令链产出)+本族模板 → 同形整页。
236
- // fail-closed:模板缺失/标记异常(fillTemplate 内抛)不返空页。
237
- // 复制区走共用件(卡路里同款三格式+六段日志);`ctx.command` 由交付链供给(含 params),直调缺省按本族主 key。
238
- export function renderFamilyPage(env, ctx) {
239
- const template = readFileSync(new URL('../../../templates/receipt/purchase_records.html', import.meta.url), 'utf8');
240
- const head = '<div class="fam-head" data-family="' + FAMILY + '" data-key="' + escapeHtml(String(env.key ?? PAGE_META.key)) + '">'
241
- // #817(⑤文案不冗余):抬头只留域标签——原本写族名「购买记录」,与场景名回填后的 h1(查购买记录/
242
- // 查上月购买/登记购买记录…)相邻重复;交付链 `withSceneIdentity` 也只保留头一个 span。
243
- + '<span>票据凭证</span></div>';
244
- const items = itemsOf(env);
245
- // 空态由内容位渲染:data-block 标记照旧在位。
246
- const main = env.shape === 'receipt'
247
- ? '<div class="fam-content">' + renderEnvelopeHtml(env) + '</div>'
248
- : items.length
249
- ? purchaseTable(env, items)
250
- // #890:按物品查(退货窗口)0 命中时回显「这一次查的是谁」——原先只有一句「没有命中购买记录」,
251
- // 认不出查的是哪一件。`query` 由命令层带回(`buildTicketList` 的第二个入参),缺了照旧只写那一句。
252
- : '<div class="fam-content" data-block="empty">' + queryEchoOf(env)
253
- + '<p>本次查询没有命中购买记录,可先登记一条再回来复核</p></div>';
254
- // #817(⑤文案不冗余):摘掉摘要句(原为「本次清单共N行,按购买日排列(金额与渠道在物品详情)」)——
255
- // 行数表里数得出来、字段去处是取数说明;属实现说明当正文。
256
- const content = head
257
- + main
258
- + PAGE_CSS
259
- + opsBlock(env, ctx)
260
- + PAGE_SCRIPT
261
- + sectionOf('fields', '字段')
262
- + sectionOf('operations', '操作')
263
- + sectionOf('empty', '空态与异常')
264
- + sectionOf('status', '状态词');
265
- return fillTemplate(template, content);
266
- }
267
- //# sourceMappingURL=purchase_records.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"purchase_records.js","sourceRoot":"","sources":["../../../src/receipt/pages/purchase_records.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { Envelope } from 'base-link-core';
2
- export declare const FAMILY: "warranty";
3
- export declare const PAGE_META: {
4
- readonly domain: "receipt";
5
- readonly family: "warranty";
6
- readonly key: "home.ticket.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=warranty.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"warranty.d.ts","sourceRoot":"","sources":["../../../src/receipt/pages/warranty.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,eAAO,MAAM,MAAM,EAAG,UAAmB,CAAC;AAE1C,eAAO,MAAM,SAAS;;;;;qBAKW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;mBAC6S,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE;CACxa,CAAC;AAEX,eAAO,MAAM,eAAe,EA2BvB;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;AAwFF,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,CAiBvH"}