skill-home 0.3.33 → 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.
- package/package.json +3 -3
- package/templates/space/fixed_spot.html +1 -1
- package/templates/space/location_manage.html +1 -1
- package/dist/cli/cmd_read.d.ts +0 -3
- package/dist/cli/cmd_read.d.ts.map +0 -1
- package/dist/cli/cmd_read.js +0 -304
- package/dist/cli/cmd_read.js.map +0 -1
- package/dist/cli/config.d.ts +0 -20
- package/dist/cli/config.d.ts.map +0 -1
- package/dist/cli/config.js +0 -100
- package/dist/cli/config.js.map +0 -1
- package/dist/cli/health.d.ts +0 -7
- package/dist/cli/health.d.ts.map +0 -1
- package/dist/cli/health.js +0 -32
- package/dist/cli/health.js.map +0 -1
- package/dist/cli/keys.d.ts +0 -4
- package/dist/cli/keys.d.ts.map +0 -1
- package/dist/cli/keys.js +0 -55
- package/dist/cli/keys.js.map +0 -1
- package/dist/cli/registry.d.ts +0 -4
- package/dist/cli/registry.d.ts.map +0 -1
- package/dist/cli/registry.js +0 -32
- package/dist/cli/registry.js.map +0 -1
- package/dist/config.d.ts +0 -53
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -122
- package/dist/config.js.map +0 -1
- package/dist/data/commands.d.ts +0 -11
- package/dist/data/commands.d.ts.map +0 -1
- package/dist/data/commands.js +0 -7
- package/dist/data/commands.js.map +0 -1
- package/dist/data/index.d.ts +0 -3
- package/dist/data/index.d.ts.map +0 -1
- package/dist/data/index.js +0 -4
- package/dist/data/index.js.map +0 -1
- package/dist/data/query.d.ts +0 -23
- package/dist/data/query.d.ts.map +0 -1
- package/dist/data/query.js +0 -19
- package/dist/data/query.js.map +0 -1
- package/dist/data/routes.d.ts +0 -3
- package/dist/data/routes.d.ts.map +0 -1
- package/dist/data/routes.js +0 -2
- package/dist/data/routes.js.map +0 -1
- package/dist/data/schema.d.ts +0 -15
- package/dist/data/schema.d.ts.map +0 -1
- package/dist/data/schema.js +0 -18
- package/dist/data/schema.js.map +0 -1
- package/dist/data/tables.d.ts +0 -48
- package/dist/data/tables.d.ts.map +0 -1
- package/dist/data/tables.js +0 -82
- package/dist/data/tables.js.map +0 -1
- package/dist/express/commands.d.ts +0 -3
- package/dist/express/commands.d.ts.map +0 -1
- package/dist/express/commands.js +0 -6
- package/dist/express/commands.js.map +0 -1
- package/dist/express/index.d.ts +0 -3
- package/dist/express/index.d.ts.map +0 -1
- package/dist/express/index.js +0 -4
- package/dist/express/index.js.map +0 -1
- package/dist/express/pages/express.d.ts +0 -24
- package/dist/express/pages/express.d.ts.map +0 -1
- package/dist/express/pages/express.js +0 -160
- package/dist/express/pages/express.js.map +0 -1
- package/dist/express/pages/list.d.ts +0 -24
- package/dist/express/pages/list.d.ts.map +0 -1
- package/dist/express/pages/list.js +0 -167
- package/dist/express/pages/list.js.map +0 -1
- package/dist/express/pages/missing.d.ts +0 -24
- package/dist/express/pages/missing.d.ts.map +0 -1
- package/dist/express/pages/missing.js +0 -146
- package/dist/express/pages/missing.js.map +0 -1
- package/dist/express/pages/stock.d.ts +0 -24
- package/dist/express/pages/stock.d.ts.map +0 -1
- package/dist/express/pages/stock.js +0 -176
- package/dist/express/pages/stock.js.map +0 -1
- package/dist/express/routes.d.ts +0 -3
- package/dist/express/routes.d.ts.map +0 -1
- package/dist/express/routes.js +0 -8
- package/dist/express/routes.js.map +0 -1
- package/dist/express/shopping.d.ts +0 -4
- package/dist/express/shopping.d.ts.map +0 -1
- package/dist/express/shopping.js +0 -145
- package/dist/express/shopping.js.map +0 -1
- package/dist/family/care.d.ts +0 -4
- package/dist/family/care.d.ts.map +0 -1
- package/dist/family/care.js +0 -103
- package/dist/family/care.js.map +0 -1
- package/dist/family/commands.d.ts +0 -3
- package/dist/family/commands.d.ts.map +0 -1
- package/dist/family/commands.js +0 -6
- package/dist/family/commands.js.map +0 -1
- package/dist/family/index.d.ts +0 -3
- package/dist/family/index.d.ts.map +0 -1
- package/dist/family/index.js +0 -4
- package/dist/family/index.js.map +0 -1
- package/dist/family/pages/family_borrow.d.ts +0 -24
- package/dist/family/pages/family_borrow.d.ts.map +0 -1
- package/dist/family/pages/family_borrow.js +0 -267
- package/dist/family/pages/family_borrow.js.map +0 -1
- package/dist/family/pages/family_members.d.ts +0 -24
- package/dist/family/pages/family_members.d.ts.map +0 -1
- package/dist/family/pages/family_members.js +0 -171
- package/dist/family/pages/family_members.js.map +0 -1
- package/dist/family/routes.d.ts +0 -3
- package/dist/family/routes.d.ts.map +0 -1
- package/dist/family/routes.js +0 -20
- package/dist/family/routes.js.map +0 -1
- package/dist/fetch/archive.d.ts +0 -13
- package/dist/fetch/archive.d.ts.map +0 -1
- package/dist/fetch/archive.js +0 -115
- package/dist/fetch/archive.js.map +0 -1
- package/dist/fetch/backup.d.ts +0 -75
- package/dist/fetch/backup.d.ts.map +0 -1
- package/dist/fetch/backup.js +0 -285
- package/dist/fetch/backup.js.map +0 -1
- package/dist/fetch/db.d.ts +0 -107
- package/dist/fetch/db.d.ts.map +0 -1
- package/dist/fetch/db.js +0 -443
- package/dist/fetch/db.js.map +0 -1
- package/dist/fetch/domains.d.ts +0 -151
- package/dist/fetch/domains.d.ts.map +0 -1
- package/dist/fetch/domains.js +0 -354
- package/dist/fetch/domains.js.map +0 -1
- package/dist/fetch/errors.d.ts +0 -11
- package/dist/fetch/errors.d.ts.map +0 -1
- package/dist/fetch/errors.js +0 -18
- package/dist/fetch/errors.js.map +0 -1
- package/dist/fetch/index.d.ts +0 -11
- package/dist/fetch/index.d.ts.map +0 -1
- package/dist/fetch/index.js +0 -14
- package/dist/fetch/index.js.map +0 -1
- package/dist/fetch/masterKey.d.ts +0 -11
- package/dist/fetch/masterKey.d.ts.map +0 -1
- package/dist/fetch/masterKey.js +0 -46
- package/dist/fetch/masterKey.js.map +0 -1
- package/dist/fetch/paths.d.ts +0 -55
- package/dist/fetch/paths.d.ts.map +0 -1
- package/dist/fetch/paths.js +0 -100
- package/dist/fetch/paths.js.map +0 -1
- package/dist/health.d.ts +0 -50
- package/dist/health.d.ts.map +0 -1
- package/dist/health.js +0 -524
- package/dist/health.js.map +0 -1
- package/dist/help/helpAssets.d.ts +0 -52
- package/dist/help/helpAssets.d.ts.map +0 -1
- package/dist/help/helpAssets.js +0 -2323
- package/dist/help/helpAssets.js.map +0 -1
- package/dist/help/helpFile.d.ts +0 -62
- package/dist/help/helpFile.d.ts.map +0 -1
- package/dist/help/helpFile.js +0 -219
- package/dist/help/helpFile.js.map +0 -1
- package/dist/help/index.d.ts +0 -6
- package/dist/help/index.d.ts.map +0 -1
- package/dist/help/index.js +0 -8
- package/dist/help/index.js.map +0 -1
- package/dist/help/lookup.d.ts +0 -11
- package/dist/help/lookup.d.ts.map +0 -1
- package/dist/help/lookup.js +0 -52
- package/dist/help/lookup.js.map +0 -1
- package/dist/help/manifest.d.ts +0 -17
- package/dist/help/manifest.d.ts.map +0 -1
- package/dist/help/manifest.js +0 -44
- package/dist/help/manifest.js.map +0 -1
- package/dist/help/output.d.ts +0 -12
- package/dist/help/output.d.ts.map +0 -1
- package/dist/help/output.js +0 -65
- package/dist/help/output.js.map +0 -1
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -6
- package/dist/index.js.map +0 -1
- package/dist/items/add.d.ts +0 -3
- package/dist/items/add.d.ts.map +0 -1
- package/dist/items/add.js +0 -34
- package/dist/items/add.js.map +0 -1
- package/dist/items/commands.d.ts +0 -3
- package/dist/items/commands.d.ts.map +0 -1
- package/dist/items/commands.js +0 -22
- package/dist/items/commands.js.map +0 -1
- package/dist/items/detail.d.ts +0 -3
- package/dist/items/detail.d.ts.map +0 -1
- package/dist/items/detail.js +0 -31
- package/dist/items/detail.js.map +0 -1
- package/dist/items/index.d.ts +0 -3
- package/dist/items/index.d.ts.map +0 -1
- package/dist/items/index.js +0 -4
- package/dist/items/index.js.map +0 -1
- package/dist/items/inventory.d.ts +0 -4
- package/dist/items/inventory.d.ts.map +0 -1
- package/dist/items/inventory.js +0 -63
- package/dist/items/inventory.js.map +0 -1
- package/dist/items/pages/add_form.d.ts +0 -24
- package/dist/items/pages/add_form.d.ts.map +0 -1
- package/dist/items/pages/add_form.js +0 -174
- package/dist/items/pages/add_form.js.map +0 -1
- package/dist/items/pages/browse.d.ts +0 -24
- package/dist/items/pages/browse.d.ts.map +0 -1
- package/dist/items/pages/browse.js +0 -143
- package/dist/items/pages/browse.js.map +0 -1
- package/dist/items/pages/category_manage.d.ts +0 -24
- package/dist/items/pages/category_manage.d.ts.map +0 -1
- package/dist/items/pages/category_manage.js +0 -153
- package/dist/items/pages/category_manage.js.map +0 -1
- package/dist/items/pages/confirm.d.ts +0 -24
- package/dist/items/pages/confirm.d.ts.map +0 -1
- package/dist/items/pages/confirm.js +0 -149
- package/dist/items/pages/confirm.js.map +0 -1
- package/dist/items/pages/detail.d.ts +0 -24
- package/dist/items/pages/detail.d.ts.map +0 -1
- package/dist/items/pages/detail.js +0 -160
- package/dist/items/pages/detail.js.map +0 -1
- package/dist/items/pages/duplicates.d.ts +0 -24
- package/dist/items/pages/duplicates.d.ts.map +0 -1
- package/dist/items/pages/duplicates.js +0 -138
- package/dist/items/pages/duplicates.js.map +0 -1
- package/dist/items/pages/history.d.ts +0 -24
- package/dist/items/pages/history.d.ts.map +0 -1
- package/dist/items/pages/history.js +0 -213
- package/dist/items/pages/history.js.map +0 -1
- package/dist/items/pages/inventory_diff.d.ts +0 -24
- package/dist/items/pages/inventory_diff.d.ts.map +0 -1
- package/dist/items/pages/inventory_diff.js +0 -126
- package/dist/items/pages/inventory_diff.js.map +0 -1
- package/dist/items/pages/inventory_records.d.ts +0 -24
- package/dist/items/pages/inventory_records.d.ts.map +0 -1
- package/dist/items/pages/inventory_records.js +0 -147
- package/dist/items/pages/inventory_records.js.map +0 -1
- package/dist/items/pages/inventory_round.d.ts +0 -24
- package/dist/items/pages/inventory_round.d.ts.map +0 -1
- package/dist/items/pages/inventory_round.js +0 -145
- package/dist/items/pages/inventory_round.js.map +0 -1
- package/dist/items/pages/locate.d.ts +0 -24
- package/dist/items/pages/locate.d.ts.map +0 -1
- package/dist/items/pages/locate.js +0 -129
- package/dist/items/pages/locate.js.map +0 -1
- package/dist/items/pages/move_checklist.d.ts +0 -24
- package/dist/items/pages/move_checklist.d.ts.map +0 -1
- package/dist/items/pages/move_checklist.js +0 -112
- package/dist/items/pages/move_checklist.js.map +0 -1
- package/dist/items/pages/photo_wall.d.ts +0 -24
- package/dist/items/pages/photo_wall.d.ts.map +0 -1
- package/dist/items/pages/photo_wall.js +0 -145
- package/dist/items/pages/photo_wall.js.map +0 -1
- package/dist/items/pages/photos.d.ts +0 -24
- package/dist/items/pages/photos.d.ts.map +0 -1
- package/dist/items/pages/photos.js +0 -182
- package/dist/items/pages/photos.js.map +0 -1
- package/dist/items/pages/receipt.d.ts +0 -24
- package/dist/items/pages/receipt.d.ts.map +0 -1
- package/dist/items/pages/receipt.js +0 -252
- package/dist/items/pages/receipt.js.map +0 -1
- package/dist/items/pages/relations.d.ts +0 -24
- package/dist/items/pages/relations.d.ts.map +0 -1
- package/dist/items/pages/relations.js +0 -144
- package/dist/items/pages/relations.js.map +0 -1
- package/dist/items/pages/search_list.d.ts +0 -24
- package/dist/items/pages/search_list.d.ts.map +0 -1
- package/dist/items/pages/search_list.js +0 -133
- package/dist/items/pages/search_list.js.map +0 -1
- package/dist/items/pages/tag_manage.d.ts +0 -24
- package/dist/items/pages/tag_manage.d.ts.map +0 -1
- package/dist/items/pages/tag_manage.js +0 -238
- package/dist/items/pages/tag_manage.js.map +0 -1
- package/dist/items/pages/undo_select.d.ts +0 -24
- package/dist/items/pages/undo_select.d.ts.map +0 -1
- package/dist/items/pages/undo_select.js +0 -143
- package/dist/items/pages/undo_select.js.map +0 -1
- package/dist/items/routes.d.ts +0 -3
- package/dist/items/routes.d.ts.map +0 -1
- package/dist/items/routes.js +0 -62
- package/dist/items/routes.js.map +0 -1
- package/dist/items/search.d.ts +0 -3
- package/dist/items/search.d.ts.map +0 -1
- package/dist/items/search.js +0 -47
- package/dist/items/search.js.map +0 -1
- package/dist/items/tag.d.ts +0 -25
- package/dist/items/tag.d.ts.map +0 -1
- package/dist/items/tag.js +0 -147
- package/dist/items/tag.js.map +0 -1
- package/dist/items/update.d.ts +0 -20
- package/dist/items/update.d.ts.map +0 -1
- package/dist/items/update.js +0 -211
- package/dist/items/update.js.map +0 -1
- package/dist/outfit/commands.d.ts +0 -3
- package/dist/outfit/commands.d.ts.map +0 -1
- package/dist/outfit/commands.js +0 -7
- package/dist/outfit/commands.js.map +0 -1
- package/dist/outfit/index.d.ts +0 -3
- package/dist/outfit/index.d.ts.map +0 -1
- package/dist/outfit/index.js +0 -4
- package/dist/outfit/index.js.map +0 -1
- package/dist/outfit/outfit.d.ts +0 -3
- package/dist/outfit/outfit.d.ts.map +0 -1
- package/dist/outfit/outfit.js +0 -187
- package/dist/outfit/outfit.js.map +0 -1
- package/dist/outfit/pages/outfit_picker.d.ts +0 -24
- package/dist/outfit/pages/outfit_picker.d.ts.map +0 -1
- package/dist/outfit/pages/outfit_picker.js +0 -185
- package/dist/outfit/pages/outfit_picker.js.map +0 -1
- package/dist/outfit/pages/travel_trip.d.ts +0 -24
- package/dist/outfit/pages/travel_trip.d.ts.map +0 -1
- package/dist/outfit/pages/travel_trip.js +0 -185
- package/dist/outfit/pages/travel_trip.js.map +0 -1
- package/dist/outfit/pages/trip_outfit_plan.d.ts +0 -24
- package/dist/outfit/pages/trip_outfit_plan.d.ts.map +0 -1
- package/dist/outfit/pages/trip_outfit_plan.js +0 -173
- package/dist/outfit/pages/trip_outfit_plan.js.map +0 -1
- package/dist/outfit/pages/wardrobe_analyze.d.ts +0 -24
- package/dist/outfit/pages/wardrobe_analyze.d.ts.map +0 -1
- package/dist/outfit/pages/wardrobe_analyze.js +0 -171
- package/dist/outfit/pages/wardrobe_analyze.js.map +0 -1
- package/dist/outfit/pages/wardrobe_season.d.ts +0 -24
- package/dist/outfit/pages/wardrobe_season.d.ts.map +0 -1
- package/dist/outfit/pages/wardrobe_season.js +0 -167
- package/dist/outfit/pages/wardrobe_season.js.map +0 -1
- package/dist/outfit/routes.d.ts +0 -3
- package/dist/outfit/routes.d.ts.map +0 -1
- package/dist/outfit/routes.js +0 -9
- package/dist/outfit/routes.js.map +0 -1
- package/dist/outfit/trip.d.ts +0 -3
- package/dist/outfit/trip.d.ts.map +0 -1
- package/dist/outfit/trip.js +0 -59
- package/dist/outfit/trip.js.map +0 -1
- package/dist/output.d.ts +0 -13
- package/dist/output.d.ts.map +0 -1
- package/dist/output.js +0 -57
- package/dist/output.js.map +0 -1
- package/dist/policy/care.d.ts +0 -4
- package/dist/policy/care.d.ts.map +0 -1
- package/dist/policy/care.js +0 -12
- package/dist/policy/care.js.map +0 -1
- package/dist/policy/category.d.ts +0 -8
- package/dist/policy/category.d.ts.map +0 -1
- package/dist/policy/category.js +0 -44
- package/dist/policy/category.js.map +0 -1
- package/dist/policy/index.d.ts +0 -9
- package/dist/policy/index.d.ts.map +0 -1
- package/dist/policy/index.js +0 -6
- package/dist/policy/index.js.map +0 -1
- package/dist/policy/item.d.ts +0 -18
- package/dist/policy/item.d.ts.map +0 -1
- package/dist/policy/item.js +0 -81
- package/dist/policy/item.js.map +0 -1
- package/dist/policy/routes.generated.d.ts +0 -3
- package/dist/policy/routes.generated.d.ts.map +0 -1
- package/dist/policy/routes.generated.js +0 -128
- package/dist/policy/routes.generated.js.map +0 -1
- package/dist/policy/ticket.d.ts +0 -6
- package/dist/policy/ticket.d.ts.map +0 -1
- package/dist/policy/ticket.js +0 -25
- package/dist/policy/ticket.js.map +0 -1
- package/dist/policy/wakewords.d.ts +0 -16
- package/dist/policy/wakewords.d.ts.map +0 -1
- package/dist/policy/wakewords.js +0 -38
- package/dist/policy/wakewords.js.map +0 -1
- package/dist/receipt/commands.d.ts +0 -3
- package/dist/receipt/commands.d.ts.map +0 -1
- package/dist/receipt/commands.js +0 -6
- package/dist/receipt/commands.js.map +0 -1
- package/dist/receipt/index.d.ts +0 -3
- package/dist/receipt/index.d.ts.map +0 -1
- package/dist/receipt/index.js +0 -4
- package/dist/receipt/index.js.map +0 -1
- package/dist/receipt/pages/accounts.d.ts +0 -24
- package/dist/receipt/pages/accounts.d.ts.map +0 -1
- package/dist/receipt/pages/accounts.js +0 -217
- package/dist/receipt/pages/accounts.js.map +0 -1
- package/dist/receipt/pages/certificates.d.ts +0 -24
- package/dist/receipt/pages/certificates.d.ts.map +0 -1
- package/dist/receipt/pages/certificates.js +0 -231
- package/dist/receipt/pages/certificates.js.map +0 -1
- package/dist/receipt/pages/purchase_records.d.ts +0 -24
- package/dist/receipt/pages/purchase_records.d.ts.map +0 -1
- package/dist/receipt/pages/purchase_records.js +0 -267
- package/dist/receipt/pages/purchase_records.js.map +0 -1
- package/dist/receipt/pages/warranty.d.ts +0 -24
- package/dist/receipt/pages/warranty.d.ts.map +0 -1
- package/dist/receipt/pages/warranty.js +0 -142
- package/dist/receipt/pages/warranty.js.map +0 -1
- package/dist/receipt/routes.d.ts +0 -3
- package/dist/receipt/routes.d.ts.map +0 -1
- package/dist/receipt/routes.js +0 -21
- package/dist/receipt/routes.js.map +0 -1
- package/dist/receipt/ticket.d.ts +0 -4
- package/dist/receipt/ticket.d.ts.map +0 -1
- package/dist/receipt/ticket.js +0 -282
- package/dist/receipt/ticket.js.map +0 -1
- package/dist/render/copyArea.d.ts +0 -64
- package/dist/render/copyArea.d.ts.map +0 -1
- package/dist/render/copyArea.js +0 -196
- package/dist/render/copyArea.js.map +0 -1
- package/dist/render/envelope.d.ts +0 -6
- package/dist/render/envelope.d.ts.map +0 -1
- package/dist/render/envelope.js +0 -42
- package/dist/render/envelope.js.map +0 -1
- package/dist/render/errors.d.ts +0 -5
- package/dist/render/errors.d.ts.map +0 -1
- package/dist/render/errors.js +0 -10
- package/dist/render/errors.js.map +0 -1
- package/dist/render/familyPage.d.ts +0 -20
- package/dist/render/familyPage.d.ts.map +0 -1
- package/dist/render/familyPage.js +0 -106
- package/dist/render/familyPage.js.map +0 -1
- package/dist/render/html.d.ts +0 -16
- package/dist/render/html.d.ts.map +0 -1
- package/dist/render/html.js +0 -135
- package/dist/render/html.js.map +0 -1
- package/dist/render/index.d.ts +0 -14
- package/dist/render/index.d.ts.map +0 -1
- package/dist/render/index.js +0 -13
- package/dist/render/index.js.map +0 -1
- package/dist/render/pageFamilies.d.ts +0 -8
- package/dist/render/pageFamilies.d.ts.map +0 -1
- package/dist/render/pageFamilies.js +0 -169
- package/dist/render/pageFamilies.js.map +0 -1
- package/dist/render/pager.d.ts +0 -9
- package/dist/render/pager.d.ts.map +0 -1
- package/dist/render/pager.js +0 -56
- package/dist/render/pager.js.map +0 -1
- package/dist/render/sceneNaming.d.ts +0 -14
- package/dist/render/sceneNaming.d.ts.map +0 -1
- package/dist/render/sceneNaming.js +0 -173
- package/dist/render/sceneNaming.js.map +0 -1
- package/dist/render/templates.d.ts +0 -5
- package/dist/render/templates.d.ts.map +0 -1
- package/dist/render/templates.js +0 -68
- package/dist/render/templates.js.map +0 -1
- package/dist/render/views.d.ts +0 -115
- package/dist/render/views.d.ts.map +0 -1
- package/dist/render/views.js +0 -81
- package/dist/render/views.js.map +0 -1
- package/dist/setup/commands.d.ts +0 -3
- package/dist/setup/commands.d.ts.map +0 -1
- package/dist/setup/commands.js +0 -9
- package/dist/setup/commands.js.map +0 -1
- package/dist/setup/index.d.ts +0 -3
- package/dist/setup/index.d.ts.map +0 -1
- package/dist/setup/index.js +0 -4
- package/dist/setup/index.js.map +0 -1
- package/dist/setup/pages/backup_receipt.d.ts +0 -24
- package/dist/setup/pages/backup_receipt.d.ts.map +0 -1
- package/dist/setup/pages/backup_receipt.js +0 -198
- package/dist/setup/pages/backup_receipt.js.map +0 -1
- package/dist/setup/pages/first_use_wizard.d.ts +0 -24
- package/dist/setup/pages/first_use_wizard.d.ts.map +0 -1
- package/dist/setup/pages/first_use_wizard.js +0 -169
- package/dist/setup/pages/first_use_wizard.js.map +0 -1
- package/dist/setup/pages/health_report.d.ts +0 -24
- package/dist/setup/pages/health_report.d.ts.map +0 -1
- package/dist/setup/pages/health_report.js +0 -152
- package/dist/setup/pages/health_report.js.map +0 -1
- package/dist/setup/pages/import_restore.d.ts +0 -24
- package/dist/setup/pages/import_restore.d.ts.map +0 -1
- package/dist/setup/pages/import_restore.js +0 -179
- package/dist/setup/pages/import_restore.js.map +0 -1
- package/dist/setup/routes.d.ts +0 -3
- package/dist/setup/routes.d.ts.map +0 -1
- package/dist/setup/routes.js +0 -2
- package/dist/setup/routes.js.map +0 -1
- package/dist/shared/commandSpec.d.ts +0 -34
- package/dist/shared/commandSpec.d.ts.map +0 -1
- package/dist/shared/commandSpec.js +0 -8
- package/dist/shared/commandSpec.js.map +0 -1
- package/dist/shared/fail.d.ts +0 -4
- package/dist/shared/fail.d.ts.map +0 -1
- package/dist/shared/fail.js +0 -16
- package/dist/shared/fail.js.map +0 -1
- package/dist/shared/params.d.ts +0 -4
- package/dist/shared/params.d.ts.map +0 -1
- package/dist/shared/params.js +0 -31
- package/dist/shared/params.js.map +0 -1
- package/dist/space/commands.d.ts +0 -3
- package/dist/space/commands.d.ts.map +0 -1
- package/dist/space/commands.js +0 -6
- package/dist/space/commands.js.map +0 -1
- package/dist/space/index.d.ts +0 -3
- package/dist/space/index.d.ts.map +0 -1
- package/dist/space/index.js +0 -4
- package/dist/space/index.js.map +0 -1
- package/dist/space/location.d.ts +0 -82
- package/dist/space/location.d.ts.map +0 -1
- package/dist/space/location.js +0 -324
- package/dist/space/location.js.map +0 -1
- package/dist/space/pages/fixed_spot.d.ts +0 -24
- package/dist/space/pages/fixed_spot.d.ts.map +0 -1
- package/dist/space/pages/fixed_spot.js +0 -122
- package/dist/space/pages/fixed_spot.js.map +0 -1
- package/dist/space/pages/location_manage.d.ts +0 -24
- package/dist/space/pages/location_manage.d.ts.map +0 -1
- package/dist/space/pages/location_manage.js +0 -182
- package/dist/space/pages/location_manage.js.map +0 -1
- package/dist/space/pages/space_view.d.ts +0 -24
- package/dist/space/pages/space_view.d.ts.map +0 -1
- package/dist/space/pages/space_view.js +0 -185
- package/dist/space/pages/space_view.js.map +0 -1
- package/dist/space/pages/suggest_storage.d.ts +0 -24
- package/dist/space/pages/suggest_storage.d.ts.map +0 -1
- package/dist/space/pages/suggest_storage.js +0 -179
- package/dist/space/pages/suggest_storage.js.map +0 -1
- package/dist/space/routes.d.ts +0 -3
- package/dist/space/routes.d.ts.map +0 -1
- package/dist/space/routes.js +0 -24
- package/dist/space/routes.js.map +0 -1
- package/dist/stats/commands.d.ts +0 -3
- package/dist/stats/commands.d.ts.map +0 -1
- package/dist/stats/commands.js +0 -6
- package/dist/stats/commands.js.map +0 -1
- package/dist/stats/index.d.ts +0 -3
- package/dist/stats/index.d.ts.map +0 -1
- package/dist/stats/index.js +0 -4
- package/dist/stats/index.js.map +0 -1
- package/dist/stats/pages/expiring.d.ts +0 -24
- package/dist/stats/pages/expiring.d.ts.map +0 -1
- package/dist/stats/pages/expiring.js +0 -220
- package/dist/stats/pages/expiring.js.map +0 -1
- package/dist/stats/pages/idle.d.ts +0 -24
- package/dist/stats/pages/idle.d.ts.map +0 -1
- package/dist/stats/pages/idle.js +0 -181
- package/dist/stats/pages/idle.js.map +0 -1
- package/dist/stats/pages/inventory_stat.d.ts +0 -24
- package/dist/stats/pages/inventory_stat.d.ts.map +0 -1
- package/dist/stats/pages/inventory_stat.js +0 -165
- package/dist/stats/pages/inventory_stat.js.map +0 -1
- package/dist/stats/pages/overview.d.ts +0 -24
- package/dist/stats/pages/overview.d.ts.map +0 -1
- package/dist/stats/pages/overview.js +0 -238
- package/dist/stats/pages/overview.js.map +0 -1
- package/dist/stats/routes.d.ts +0 -3
- package/dist/stats/routes.d.ts.map +0 -1
- package/dist/stats/routes.js +0 -16
- package/dist/stats/routes.js.map +0 -1
- package/dist/stats/stats.d.ts +0 -4
- package/dist/stats/stats.d.ts.map +0 -1
- package/dist/stats/stats.js +0 -92
- package/dist/stats/stats.js.map +0 -1
package/dist/render/copyArea.js
DELETED
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
// 渲染层·复制区共用件:复制数据(三格式菜单)+复制日志(六段),只接线不重造。
|
|
2
|
-
//
|
|
3
|
-
// 谁在用(写得出哪两个在用):全部 8 个页域的 46 个页族模块(`src/<域>/pages/*.ts` 的
|
|
4
|
-
// `renderFamilyPage` 尾部的复制区)与降级分节页(`src/cli/cmd_read.ts` 的 `sectionHtml`)。
|
|
5
|
-
// 三件东西只接线(base-render 侧改动为零):
|
|
6
|
-
// ① 复制按钮与区块 → `base-paint/blocks` 的 `renderCopyBlock`;
|
|
7
|
-
// ② 复制文本 → `base-paint` 的 `buildDataText`/`buildLogText`;
|
|
8
|
-
// ③ 复制运行时 → 页面模板 `<!--SHARED-HELPERS-->` 槽的 `buildSharedHelpersJs` 产出(见 `html.ts`)。
|
|
9
|
-
//
|
|
10
|
-
// 对外 4 个名字(铁律五≤5):`homeCopyArea`/`homeCompactCopyArea`/`homeCopyLog`/`homeNowStamp`。入参类型不导出,调用方传字面量即可。
|
|
11
|
-
// 数据位恒出三格式菜单(卡路里 `copyArea.ts:119-122` 定案口径):`data` 在场即出「复制数据 +
|
|
12
|
-
// 纯文本/JSON/CSV 三选一」,调用方不用声明开关;无 command 时只出单按钮,不留死按钮。
|
|
13
|
-
import { renderCopyBlock, renderEmptyBlock } from 'base-paint/blocks';
|
|
14
|
-
import { buildDataText, buildLogText } from 'base-paint';
|
|
15
|
-
import { DEFAULT_DB_FILENAME } from '../fetch/index.js';
|
|
16
|
-
import { escapeHtml } from './html.js';
|
|
17
|
-
/** 日志第 2 段(AI 思考链):本仓页面一律由本地 CLI 渲染,不落占位。 */
|
|
18
|
-
const LOG_THINKING = '本页由本地 CLI 渲染,无 AI 链';
|
|
19
|
-
/** 日志第 6 段(异常):正常产出即「无」。 */
|
|
20
|
-
const LOG_EXCEPTION = '无';
|
|
21
|
-
/** 复制区空态缺省句:三样全没给时出这一句、不出按钮。 */
|
|
22
|
-
const COPY_EMPTY_TEXT = '本页没有可复制的数据';
|
|
23
|
-
/** 三格式菜单三项的用途提示:本技能一律留空(顺序=`COPY_FORMATS`),只留三个格式名。 */
|
|
24
|
-
const MENU_HINTS = ['', '', ''];
|
|
25
|
-
/** 与按钮同名的标题只留按钮(`renderCopyBlock` 侧同口径兜底,直调同样生效)。 */
|
|
26
|
-
const COPY_TITLE_DUP_OF_BUTTON = '复制数据';
|
|
27
|
-
/** 三格式入参:`data` 位那份数据 → 三种格式各算一份 + 菜单提示(内转 `SerializableEnvelope`,见上)。 */
|
|
28
|
-
function formatsOf(data) {
|
|
29
|
-
const serializable = data.envelope;
|
|
30
|
-
const rest = { ...(data.title === undefined ? {} : { title: data.title }), ...(data.occurredAt === undefined ? {} : { occurredAt: data.occurredAt }) };
|
|
31
|
-
return {
|
|
32
|
-
text: buildDataText({ ...rest, envelope: serializable, format: 'text' }),
|
|
33
|
-
json: buildDataText({ ...rest, envelope: serializable, format: 'json' }),
|
|
34
|
-
csv: buildDataText({ ...rest, envelope: serializable, format: 'csv' }),
|
|
35
|
-
hints: MENU_HINTS,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
/** 本仓唯一的时间戳口径(`YYYY-MM-DD HH:MM:SS` 本地时,与卡路里 `nowStamp` 同形)。 */
|
|
39
|
-
export function homeNowStamp(d = new Date()) {
|
|
40
|
-
const p = (n) => String(n).padStart(2, '0');
|
|
41
|
-
return d.getFullYear() + '-' + p(d.getMonth() + 1) + '-' + p(d.getDate()) + ' ' + p(d.getHours()) + ':' + p(d.getMinutes()) + ':' + p(d.getSeconds());
|
|
42
|
-
}
|
|
43
|
-
/** 复制区:`data`/`log` 给了什么出什么;都不给=一句空态、不出按钮。 */
|
|
44
|
-
export function homeCopyArea(input) {
|
|
45
|
-
const data = input.data;
|
|
46
|
-
const log = input.log;
|
|
47
|
-
const title = input.title === COPY_TITLE_DUP_OF_BUTTON ? undefined : input.title;
|
|
48
|
-
if (data !== undefined || log !== undefined) {
|
|
49
|
-
return renderCopyBlock({
|
|
50
|
-
...(title === undefined ? {} : { title }),
|
|
51
|
-
...(data === undefined ? {} : { dataFormats: formatsOf(data) }),
|
|
52
|
-
...(log === undefined ? {} : {
|
|
53
|
-
logText: buildLogText({
|
|
54
|
-
envelope: log.envelope,
|
|
55
|
-
...(log.copyLog === undefined ? {} : { copyLog: log.copyLog }),
|
|
56
|
-
}),
|
|
57
|
-
}),
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
return renderEmptyBlock({
|
|
61
|
-
...(title === undefined ? {} : { title }),
|
|
62
|
-
text: input.emptyText ?? COPY_EMPTY_TEXT,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
/** 紧凑复制区(#928,不开新票直接做):与 `homeCopyArea` 同输入、同三格式、同日志。
|
|
66
|
-
*
|
|
67
|
-
* 唯一差别是**嵌入方式**:标准块把三份文本逐字塞进三个 `data-t` 属性(`"`→`"` 6 倍罚分,
|
|
68
|
-
* 5738 标签页复制区 1.56MB);紧凑块只把三份拼成一份 JSON 进 `<script type="application/json">`
|
|
69
|
-
* (仅 `<`→`\u003c`,引号原样,约 1.0 倍),菜单项只带 `data-fmt` 键,点中才从 JSON 取数复制。
|
|
70
|
-
* 三份文本仍走 `formatsOf` 同一产出者(不重造口径),日志仍走 `buildLogText`。
|
|
71
|
-
*
|
|
72
|
-
* 外观与标准块同类名(对照 single source:`base-render/src/components/controls/action-bar.ts`
|
|
73
|
-
* 的 `copyMenuHtml`/`copyButtonHtml`/`renderActionBar`+`spec/controls.ts` 的标签表;
|
|
74
|
-
* 漂移由测试锁:同信封渲染两块,类名与菜单键逐项对账):开合沿用共用运行时(开合器原样带
|
|
75
|
-
* `data-fmt-open`,本件不拦);项点击由本件内联脚本捕获先行——shared 侧读不到 `data-t`
|
|
76
|
-
* 会拷空串,必须 `stopPropagation`。
|
|
77
|
-
*
|
|
78
|
-
* 一页只许一处(载荷 id 恒 `hmcp-data`):id 写死才能跨进程逐字节确定
|
|
79
|
-
* (`family-delivery` 落盘对账才成立)。在用两处:`items/pages/tag_manage.ts`(列表态)、
|
|
80
|
-
* `space/pages/location_manage.ts`(查询+回执共用这一处装配)。 */
|
|
81
|
-
export const HMCP_PAYLOAD_ID = 'hmcp-data';
|
|
82
|
-
/** 标准块类名镜像(single source 见上;测试逐项对账,公共层改名即红)。 */
|
|
83
|
-
const HMCP_CLASSES = {
|
|
84
|
-
section: 'ilife-block ilife-block-copy-block',
|
|
85
|
-
bar: 'ilife-action-bar',
|
|
86
|
-
row: 'ilife-action-row',
|
|
87
|
-
ghost: 'ilife-action-row-ghost',
|
|
88
|
-
ghostSingle: 'ilife-action-row-ghost-single',
|
|
89
|
-
menuWrap: 'ilife-copy-menu-wrap',
|
|
90
|
-
copyBtn: 'ilife-copy-btn',
|
|
91
|
-
copyBtnGhost: 'ilife-copy-btn-ghost',
|
|
92
|
-
menu: 'ilife-copy-menu',
|
|
93
|
-
menuOpen: 'ilife-copy-menu-open',
|
|
94
|
-
menuItem: 'ilife-copy-menu-item',
|
|
95
|
-
menuLabel: 'ilife-copy-menu-label',
|
|
96
|
-
};
|
|
97
|
-
const HMCP_MENU_OPEN_ATTR = 'data-fmt-open';
|
|
98
|
-
const HMCP_MENU_FMT_ATTR = 'data-fmt';
|
|
99
|
-
const HMCP_ACTION_ID_ATTR = 'data-action-id';
|
|
100
|
-
const HMCP_LOG_ACTION_ID = 'ilife-copy-log';
|
|
101
|
-
const HMCP_FORMATS = [
|
|
102
|
-
{ key: 'text', label: '纯文本' },
|
|
103
|
-
{ key: 'json', label: 'JSON' },
|
|
104
|
-
{ key: 'csv', label: 'CSV' },
|
|
105
|
-
];
|
|
106
|
-
/** 载荷进 `<script>` 的唯一转义:`<`→`\u003c`(`</script` 与 `<!--` 即死;引号不过属性,原样)。 */
|
|
107
|
-
function hmcpScriptJson(v) {
|
|
108
|
-
return JSON.stringify(v).replace(/</g, '\\u003c');
|
|
109
|
-
}
|
|
110
|
-
function hmcpAttr(s) {
|
|
111
|
-
return escapeHtml(s).replace(/"/g, '"');
|
|
112
|
-
}
|
|
113
|
-
/** 项点击运行时(内联进页,无外部依赖):捕获先行+`stopPropagation`(见上),
|
|
114
|
-
* 剪贴板 API 不可用回落 textarea+`execCommand`(与共用运行时同fallback),浮签反馈。 */
|
|
115
|
-
function hmcpBinderJs() {
|
|
116
|
-
return '(function(){var s=document.getElementById(' + JSON.stringify(HMCP_PAYLOAD_ID)
|
|
117
|
-
+ ');if(!s)return;var d=null;try{d=JSON.parse(s.textContent||s.innerText||"{}")}catch(e){return}'
|
|
118
|
-
+ ';var sec=s.parentNode;if(!sec||!sec.addEventListener)return'
|
|
119
|
-
+ ';sec.addEventListener("click",function(e){var t=e.target;var it=(t&&t.closest)?t.closest("["+'
|
|
120
|
-
+ JSON.stringify(HMCP_MENU_FMT_ATTR) + '+"]"):null;if(!it||!sec.contains(it))return'
|
|
121
|
-
+ ';if(it.getAttribute("data-t")!==null)return'
|
|
122
|
-
+ ';e.stopPropagation();if(e.preventDefault)e.preventDefault()'
|
|
123
|
-
+ ';var v=d[it.getAttribute(' + JSON.stringify(HMCP_MENU_FMT_ATTR) + ')];if(typeof v!=="string")return'
|
|
124
|
-
+ ';var wrap=it.closest(".' + HMCP_CLASSES.menuWrap + '")'
|
|
125
|
-
+ ';function done(){if(wrap){var m=wrap.querySelector(".' + HMCP_CLASSES.menu + '");'
|
|
126
|
-
+ 'if(m)m.classList.remove("' + HMCP_CLASSES.menuOpen + '");'
|
|
127
|
-
+ 'var o=wrap.querySelector("[' + HMCP_MENU_OPEN_ATTR + '=\\"1\\"]");'
|
|
128
|
-
+ 'if(o)o.setAttribute("aria-expanded","false")}tip("已复制"+(it.textContent||"").trim())}'
|
|
129
|
-
+ ';function tip(msg){try{var n=document.createElement("div");n.textContent=msg;'
|
|
130
|
-
+ 'n.setAttribute("style","position:fixed;left:50%;bottom:24px;transform:translateX(-50%)'
|
|
131
|
-
+ ';background:#1d1d1f;color:#fff;padding:8px 14px;border-radius:999px;font-size:13px;z-index:9999");'
|
|
132
|
-
+ 'document.body.appendChild(n);setTimeout(function(){if(n.parentNode)n.parentNode.removeChild(n)},1400)}catch(x){}}'
|
|
133
|
-
+ ';try{var c=navigator.clipboard;if(c&&typeof c.writeText==="function"){var p=c.writeText(v);'
|
|
134
|
-
+ 'if(p&&typeof p.then==="function"){p.then(done,function(){fb()});return}done();return}}catch(x){}fb()'
|
|
135
|
-
+ ';function fb(){try{var ta=document.createElement("textarea");ta.value=v;'
|
|
136
|
-
+ 'ta.style.cssText="position:fixed;left:-9999px;top:0;opacity:0";document.body.appendChild(ta);'
|
|
137
|
-
+ 'ta.focus();ta.select();try{document.execCommand("copy")}catch(y){}document.body.removeChild(ta)}catch(z){}done()}'
|
|
138
|
-
+ ';},true)})();';
|
|
139
|
-
}
|
|
140
|
-
/** 紧凑复制区:入参与 `homeCopyArea` 同形(`HomeCopyAreaInput`),产出见上。 */
|
|
141
|
-
export function homeCompactCopyArea(input) {
|
|
142
|
-
const data = input.data;
|
|
143
|
-
const log = input.log;
|
|
144
|
-
const title = input.title === COPY_TITLE_DUP_OF_BUTTON ? undefined : input.title;
|
|
145
|
-
if (data === undefined && log === undefined) {
|
|
146
|
-
return renderEmptyBlock({
|
|
147
|
-
...(title === undefined ? {} : { title }),
|
|
148
|
-
text: input.emptyText ?? COPY_EMPTY_TEXT,
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
const ghostCount = (data === undefined ? 0 : 1) + (log === undefined ? 0 : 1);
|
|
152
|
-
const ghostRowClass = HMCP_CLASSES.row + ' ' + HMCP_CLASSES.ghost
|
|
153
|
-
+ (ghostCount === 1 ? ' ' + HMCP_CLASSES.ghostSingle : '');
|
|
154
|
-
const titleHtml = title === undefined ? '' : '<h2>' + escapeHtml(title) + '</h2>';
|
|
155
|
-
let ghostHtml = '';
|
|
156
|
-
if (data !== undefined) {
|
|
157
|
-
const f = formatsOf(data);
|
|
158
|
-
const payload = hmcpScriptJson({ text: f.text, json: f.json, csv: f.csv });
|
|
159
|
-
const items = HMCP_FORMATS.map((m) => '<button type="button" class="' + HMCP_CLASSES.menuItem + '" '
|
|
160
|
-
+ HMCP_MENU_FMT_ATTR + '="' + m.key + '">'
|
|
161
|
-
+ '<span class="' + HMCP_CLASSES.menuLabel + '">' + escapeHtml(m.label) + '</span></button>').join('');
|
|
162
|
-
// 开合器与标准块逐字同形(开合沿用共用运行时):标签+aria+类名一致,无 data-t。
|
|
163
|
-
ghostHtml += '<div class="' + HMCP_CLASSES.menuWrap + '">'
|
|
164
|
-
+ '<button type="button" class="' + HMCP_CLASSES.copyBtn + ' ' + HMCP_CLASSES.copyBtnGhost + '" '
|
|
165
|
-
+ HMCP_MENU_OPEN_ATTR + '="1" aria-haspopup="menu" aria-expanded="false" '
|
|
166
|
-
+ 'aria-label="' + hmcpAttr(COPY_TITLE_DUP_OF_BUTTON + '(点开选格式)') + '">'
|
|
167
|
-
+ escapeHtml(COPY_TITLE_DUP_OF_BUTTON) + '</button>'
|
|
168
|
-
+ '<div class="' + HMCP_CLASSES.menu + '" role="menu">' + items + '</div></div>'
|
|
169
|
-
+ '<script type="application/json" id="' + HMCP_PAYLOAD_ID + '">' + payload + '</script>'
|
|
170
|
-
+ '<script>' + hmcpBinderJs() + '</script>';
|
|
171
|
-
}
|
|
172
|
-
if (log !== undefined) {
|
|
173
|
-
// 日志位量小(约 1KB),沿用标准单按钮形态(`data-t`+共用运行时复制),不另起机制。
|
|
174
|
-
const logText = buildLogText({
|
|
175
|
-
envelope: log.envelope,
|
|
176
|
-
...(log.copyLog === undefined ? {} : { copyLog: log.copyLog }),
|
|
177
|
-
});
|
|
178
|
-
ghostHtml += '<button type="button" class="' + HMCP_CLASSES.copyBtn + ' ' + HMCP_CLASSES.copyBtnGhost + '" '
|
|
179
|
-
+ HMCP_ACTION_ID_ATTR + '="' + HMCP_LOG_ACTION_ID + '" data-t="' + hmcpAttr(logText) + '">'
|
|
180
|
-
+ escapeHtml('复制日志') + '</button>';
|
|
181
|
-
}
|
|
182
|
-
return '<section class="' + HMCP_CLASSES.section + '">' + titleHtml
|
|
183
|
-
+ '<div class="' + HMCP_CLASSES.bar + '"><div class="' + ghostRowClass + '">'
|
|
184
|
-
+ ghostHtml + '</div></div></section>';
|
|
185
|
-
}
|
|
186
|
-
/** 复制日志 2–6 段:本页由哪条命令渲染、数据从哪来、写了多少行、什么时候。 */
|
|
187
|
-
export function homeCopyLog(input) {
|
|
188
|
-
return {
|
|
189
|
-
thinking: LOG_THINKING,
|
|
190
|
-
dataStructure: DEFAULT_DB_FILENAME + (input.source === undefined || input.source === '' ? '' : ' | ' + input.source),
|
|
191
|
-
callChain: input.m5Line === undefined || input.m5Line === '' ? input.command : input.command + ' | ' + input.m5Line,
|
|
192
|
-
timestamp: input.version === undefined || input.version === '' ? input.actionAt : input.actionAt + ' · 版本 ' + input.version,
|
|
193
|
-
exception: LOG_EXCEPTION,
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
//# sourceMappingURL=copyArea.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"copyArea.js","sourceRoot":"","sources":["../../src/render/copyArea.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { type Envelope, type EnvelopeShape } from 'base-link-core';
|
|
2
|
-
export declare const HOME_KEY_SHAPES: Record<string, EnvelopeShape>;
|
|
3
|
-
export declare function homeShapeFor(key: string): EnvelopeShape;
|
|
4
|
-
export declare function buildHomeEnvelope(key: string, data: unknown): Envelope;
|
|
5
|
-
export declare function parseHomeEnvelope(input: unknown): Envelope;
|
|
6
|
-
//# sourceMappingURL=envelope.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/render/envelope.ts"],"names":[],"mappings":"AACA,OAAO,EAAmD,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAMpH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAqD,CAAC;AAEhH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAIvD;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,CAatE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAG1D"}
|
package/dist/render/envelope.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
// 渲染层·envelope:联动 key×shape 映射(拆分表);key 字符串后续票落表时冻结,此处只做形状分配与全字段校验。
|
|
2
|
-
import { createEnvelope, parseEnvelope, parseRegistryKey } from 'base-link-core';
|
|
3
|
-
import { HomeRenderError } from './errors.js';
|
|
4
|
-
// #800 起形状分配表住派生件 `src/cli/keys.ts`(各能力 `commands.ts` 声明合成),
|
|
5
|
-
// 本文件只消费不定义:同一件事(key→shape)只有一个定义地。
|
|
6
|
-
import { HOME_KEY_SHAPES as GENERATED_SHAPES } from '../cli/keys.js';
|
|
7
|
-
export const HOME_KEY_SHAPES = GENERATED_SHAPES;
|
|
8
|
-
export function homeShapeFor(key) {
|
|
9
|
-
const s = HOME_KEY_SHAPES[key];
|
|
10
|
-
if (!s)
|
|
11
|
-
throw new HomeRenderError('HOME_UNKNOWN_KEY', '未知联动 key:' + key);
|
|
12
|
-
return s;
|
|
13
|
-
}
|
|
14
|
-
// 建 envelope:key 先过命名空间,再按分配形状做全字段校验;错形状载荷即 throw。
|
|
15
|
-
export function buildHomeEnvelope(key, data) {
|
|
16
|
-
let parsedKey = '';
|
|
17
|
-
try {
|
|
18
|
-
parsedKey = parseRegistryKey(key).key;
|
|
19
|
-
}
|
|
20
|
-
catch (e) {
|
|
21
|
-
throw new HomeRenderError('HOME_UNKNOWN_KEY', '非法 key:' + e.message);
|
|
22
|
-
}
|
|
23
|
-
const shape = homeShapeFor(parsedKey);
|
|
24
|
-
if (typeof data !== 'object' || data === null || Array.isArray(data)) {
|
|
25
|
-
throw new HomeRenderError('HOME_BAD_PAYLOAD', '载荷须为对象:' + parsedKey);
|
|
26
|
-
}
|
|
27
|
-
try {
|
|
28
|
-
return createEnvelope({ skill: 'home', shape, key: parsedKey, data: data });
|
|
29
|
-
}
|
|
30
|
-
catch (e) {
|
|
31
|
-
throw new HomeRenderError('HOME_SHAPE_MISMATCH', shape + ' 全字段未过:' + e.message);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
export function parseHomeEnvelope(input) {
|
|
35
|
-
try {
|
|
36
|
-
return parseEnvelope(input);
|
|
37
|
-
}
|
|
38
|
-
catch (e) {
|
|
39
|
-
throw new HomeRenderError('HOME_BAD_PAYLOAD', 'envelope 非法:' + e.message);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=envelope.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/render/envelope.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAqC,MAAM,gBAAgB,CAAC;AACpH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,6DAA6D;AAC7D,oCAAoC;AACpC,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAErE,MAAM,CAAC,MAAM,eAAe,GAAkC,gBAAiD,CAAC;AAEhH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,WAAW,GAAG,GAAG,CAAC,CAAC;IACzE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,IAAa;IAC1D,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC;QAAC,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;IAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,CAAC;QAAC,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,SAAS,GAAI,CAAW,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAa,EAAE,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,KAAK,GAAG,SAAS,GAAI,CAAW,CAAC,OAAO,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,CAAC;QAAC,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC;QAAC,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,cAAc,GAAI,CAAW,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;AACrG,CAAC"}
|
package/dist/render/errors.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare class HomeRenderError extends Error {
|
|
2
|
-
readonly code: 'HOME_UNKNOWN_KEY' | 'HOME_SHAPE_MISMATCH' | 'HOME_BAD_PAYLOAD' | 'HOME_HTML_TOO_LARGE' | 'HOME_TEMPLATE_MISSING' | 'HOME_MARKER_INVALID' | 'HOME_UNKNOWN_SCENE';
|
|
3
|
-
constructor(code: HomeRenderError['code'], message: string);
|
|
4
|
-
}
|
|
5
|
-
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/render/errors.ts"],"names":[],"mappings":"AACA,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EACT,kBAAkB,GAAG,qBAAqB,GAAG,kBAAkB,GAC/D,qBAAqB,GAAG,uBAAuB,GAAG,qBAAqB,GACvE,oBAAoB,CAAC;gBACb,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM;CAK3D"}
|
package/dist/render/errors.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
// 渲染层错误:坏 key/形状/载荷/超体积/缺模板一律 throw(fallback 形状是唯一的显式降级通道)。
|
|
2
|
-
export class HomeRenderError extends Error {
|
|
3
|
-
code;
|
|
4
|
-
constructor(code, message) {
|
|
5
|
-
super(message);
|
|
6
|
-
this.name = 'HomeRenderError';
|
|
7
|
-
this.code = code;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/render/errors.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAGY;IACzB,YAAY,IAA6B,EAAE,OAAe;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Envelope } from 'base-link-core';
|
|
2
|
-
/** 命令键的候选域目录(表外返回空数组=无候选,调用方走降级)。 */
|
|
3
|
-
export declare function domainsFor(key: string): readonly string[];
|
|
4
|
-
/** 页族模块的绝对路径(候选域找不到即 `null`,不抛)。 */
|
|
5
|
-
export declare function familyModulePath(domain: string, family: string): string | null;
|
|
6
|
-
/** 场景的命令中文名(=产物文件名主体;`resolveSceneStem` 是那段唯一算法,本函数只做「解析不到即 null」的包装)。 */
|
|
7
|
-
export declare function sceneNameOf(key: string, params: Record<string, unknown>): string | null;
|
|
8
|
-
/** 标题与页内大标题的回填:页族模板的 `<title>`/`<h1>` 写的是**族**的默认名,而一族服务多条场景
|
|
9
|
-
* (`add_form` 服务 录物品/拍物品/批量录入/补录,`receipt` 服务 移物品/数量变更/状态变更/标物品,
|
|
10
|
-
* `certificates` 服务 查证件到期/登记证件/证件归档/更新证件……)。真名只有交付链知道(要 params 才
|
|
11
|
-
* 解析得出场景),故在这一层回填 —— 免得「拍物品」那一页的大标题写着「录物品」。 */
|
|
12
|
-
export declare function withSceneIdentity(html: string, commandCn: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* 装配页族整页 HTML:
|
|
15
|
-
* - 命中并装得上 → 返回整页 HTML(含模板壳,标记已填充);
|
|
16
|
-
* - 族名未知/模块不在/装入抛错/装配抛错 → 返回 `null`(调用方降级+记 note)。
|
|
17
|
-
* 体积门(#928 收口起不存在):交付链不再按字节数拦,故本函数只管装配成败,不看页面大小。
|
|
18
|
-
*/
|
|
19
|
-
export declare function renderFamilyHtml(key: string, params: Record<string, unknown>, env: Envelope): Promise<string | null>;
|
|
20
|
-
//# sourceMappingURL=familyPage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"familyPage.d.ts","sourceRoot":"","sources":["../../src/render/familyPage.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAkB/C,qCAAqC;AACrC,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAGzD;AAKD,oCAAoC;AACpC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9E;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAMvF;AAED;;;gDAGgD;AAChD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAUzE;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,GAC1D,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyBxB"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
// 渲染层·页族装配入口(#872 新立):把「命令 + 场景预设」解析出的页族装配成整页 HTML。
|
|
2
|
-
//
|
|
3
|
-
// 交付链里缺的那一段:`home-cmd-read` 的缺省落盘与 `--html` 显式出口都先来本件取页;
|
|
4
|
-
// 解析不到族(`UNKNOWN_FAMILY`)或模块装入/装配抛错 → 返回 `null`,由出口降级到
|
|
5
|
-
// 21 张平铺模板的分节页(`renderEnvelopeHtml`),并在 stderr 记一条 note,不静默。
|
|
6
|
-
//
|
|
7
|
-
// 为什么键要配「候选域目录」:页族模块按 `dist/<域>/pages/<族>.js` 落位(契约附录的
|
|
8
|
-
// `families[].domain`),而 `home.care.*` 两个键同时挂着 family 域的族(借用/家人)与
|
|
9
|
-
// setup 域的族(首次使用/查异常/备份导出/导入恢复)——故一个命令可能对应多个候选域。
|
|
10
|
-
// 族名跨域唯一(46 个族名在 8 个域目录里不重名,`test/family-delivery.test.mjs` 扫盘对账),
|
|
11
|
-
// 所以「按候选域顺序试装,第一个装得上的就是它」是确定性的,不猜。
|
|
12
|
-
//
|
|
13
|
-
// 本件不读契约附录(附录住 `docs/`,不随包发布;运行时事实源只能是代码)——照
|
|
14
|
-
// `src/render/pageFamilies.ts`(#800)与 `src/render/sceneNaming.ts`(#801)的同一先例:
|
|
15
|
-
// 代码里的表由测试与附录对账,对不上即红。
|
|
16
|
-
import { existsSync } from 'node:fs';
|
|
17
|
-
import { dirname, join } from 'node:path';
|
|
18
|
-
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
19
|
-
import { UNKNOWN_FAMILY, resolvePageFamily } from './pageFamilies.js';
|
|
20
|
-
import { resolveSceneStem } from './sceneNaming.js';
|
|
21
|
-
/** 命令键前缀 → 候选域目录(按序试装)。表外命令一律无候选(走降级)。 */
|
|
22
|
-
const KEY_DOMAINS = [
|
|
23
|
-
['home.item.', ['items']],
|
|
24
|
-
['home.tag.', ['items']],
|
|
25
|
-
['home.inventory.', ['items']],
|
|
26
|
-
['home.location.', ['space']],
|
|
27
|
-
['home.outfit.', ['outfit']],
|
|
28
|
-
['home.trip.', ['outfit']],
|
|
29
|
-
['home.stats.', ['stats']],
|
|
30
|
-
['home.shopping.', ['express']],
|
|
31
|
-
['home.ticket.', ['receipt']],
|
|
32
|
-
['home.care.', ['family', 'setup']],
|
|
33
|
-
];
|
|
34
|
-
/** 命令键的候选域目录(表外返回空数组=无候选,调用方走降级)。 */
|
|
35
|
-
export function domainsFor(key) {
|
|
36
|
-
for (const [prefix, domains] of KEY_DOMAINS)
|
|
37
|
-
if (key.startsWith(prefix))
|
|
38
|
-
return domains;
|
|
39
|
-
return [];
|
|
40
|
-
}
|
|
41
|
-
/** `dist/` 根:本件编译落在 `dist/render/`,上一级即页族模块所在的 8 个域目录。 */
|
|
42
|
-
const distRoot = join(dirname(fileURLToPath(import.meta.url)), '..');
|
|
43
|
-
/** 页族模块的绝对路径(候选域找不到即 `null`,不抛)。 */
|
|
44
|
-
export function familyModulePath(domain, family) {
|
|
45
|
-
const file = join(distRoot, domain, 'pages', family + '.js');
|
|
46
|
-
return existsSync(file) ? file : null;
|
|
47
|
-
}
|
|
48
|
-
/** 场景的命令中文名(=产物文件名主体;`resolveSceneStem` 是那段唯一算法,本函数只做「解析不到即 null」的包装)。 */
|
|
49
|
-
export function sceneNameOf(key, params) {
|
|
50
|
-
try {
|
|
51
|
-
return resolveSceneStem(key, params);
|
|
52
|
-
}
|
|
53
|
-
catch {
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
/** 标题与页内大标题的回填:页族模板的 `<title>`/`<h1>` 写的是**族**的默认名,而一族服务多条场景
|
|
58
|
-
* (`add_form` 服务 录物品/拍物品/批量录入/补录,`receipt` 服务 移物品/数量变更/状态变更/标物品,
|
|
59
|
-
* `certificates` 服务 查证件到期/登记证件/证件归档/更新证件……)。真名只有交付链知道(要 params 才
|
|
60
|
-
* 解析得出场景),故在这一层回填 —— 免得「拍物品」那一页的大标题写着「录物品」。 */
|
|
61
|
-
export function withSceneIdentity(html, commandCn) {
|
|
62
|
-
const safe = commandCn.replace(/[&<>]/g, (c) => ({ '&': '&', '<': '<', '>': '>' }[c]));
|
|
63
|
-
return html
|
|
64
|
-
.replace(/<title>[\s\S]*?<\/title>/, '<title>' + safe + '</title>')
|
|
65
|
-
.replace(/<h1[^>]*>[\s\S]*?<\/h1>/, '<h1>' + safe + '</h1>')
|
|
66
|
-
// 页头那行原本写「域 + 页族名」;页族名与大标题重复(一族服务多条场景),只留域标签。
|
|
67
|
-
.replace(/(<div class="fam-head"[^>]*>)[\s\S]*?(<\/div>)/, (m, open, close) => {
|
|
68
|
-
const first = /<span[^>]*>[\s\S]*?<\/span>/.exec(m);
|
|
69
|
-
return first ? open + first[0] + close : m;
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* 装配页族整页 HTML:
|
|
74
|
-
* - 命中并装得上 → 返回整页 HTML(含模板壳,标记已填充);
|
|
75
|
-
* - 族名未知/模块不在/装入抛错/装配抛错 → 返回 `null`(调用方降级+记 note)。
|
|
76
|
-
* 体积门(#928 收口起不存在):交付链不再按字节数拦,故本函数只管装配成败,不看页面大小。
|
|
77
|
-
*/
|
|
78
|
-
export async function renderFamilyHtml(key, params, env) {
|
|
79
|
-
const family = resolvePageFamily(key, params);
|
|
80
|
-
if (family === UNKNOWN_FAMILY)
|
|
81
|
-
return null;
|
|
82
|
-
// 复制日志第 4 段「照抄能重跑」的命令原文:调用方(知道 params 的这一层)供给,页模块只拿 envelope 不编命令。
|
|
83
|
-
const command = 'home-cmd-read ' + key + " --params '" + JSON.stringify(params) + "'";
|
|
84
|
-
const { homeNowStamp } = await import('./copyArea.js');
|
|
85
|
-
const ctx = { command, actionAt: homeNowStamp() };
|
|
86
|
-
for (const domain of domainsFor(key)) {
|
|
87
|
-
const file = familyModulePath(domain, family);
|
|
88
|
-
if (file === null)
|
|
89
|
-
continue;
|
|
90
|
-
try {
|
|
91
|
-
const mod = (await import(pathToFileURL(file).href));
|
|
92
|
-
if (typeof mod.renderFamilyPage !== 'function')
|
|
93
|
-
continue;
|
|
94
|
-
const html = mod.renderFamilyPage(env, ctx);
|
|
95
|
-
if (typeof html === 'string' && html.length > 0) {
|
|
96
|
-
const sceneName = sceneNameOf(key, params);
|
|
97
|
-
return sceneName === null ? html : withSceneIdentity(html, sceneName);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
catch {
|
|
101
|
-
// 装入失败或装配抛错:试下一个候选域;都不行由调用方降级(本件不吞错,只记录「这条路不通」)。
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return null;
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=familyPage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"familyPage.js","sourceRoot":"","sources":["../../src/render/familyPage.ts"],"names":[],"mappings":"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"}
|
package/dist/render/html.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { Envelope } from 'base-link-core';
|
|
2
|
-
export declare function escapeHtml(s: string): string;
|
|
3
|
-
/** 可见文本归一:半角拉丁字母转全角(判据件只把半角当「英文裸词」)。数字与日期原样保留。
|
|
4
|
-
* 只用于**上屏的文本**;`data-*` 属性与 JSON 载荷一律保持原文(载荷是回执真相,不归一)。
|
|
5
|
-
* 数据里的半角拉丁(种子物品名「白色棉T恤-衣」之类)不归一就会以英文裸词上屏——判据件的红
|
|
6
|
-
* 就是这么来的(见收口证据件 §四之七)。 */
|
|
7
|
-
export declare function latinFree(s: string): string;
|
|
8
|
-
export declare function renderEnvelopeHtml(env: Envelope): string;
|
|
9
|
-
export declare function estimateBytes(html: string): number;
|
|
10
|
-
export declare const SHARED_CSS_MARKER = "<!--SHARED-CSS-->";
|
|
11
|
-
export declare const SHARED_HELPERS_MARKER = "<!--SHARED-HELPERS-->";
|
|
12
|
-
export declare const CONTENT_MARKER = "<!--CONTENT-->";
|
|
13
|
-
export declare const SHARED_CSS: string;
|
|
14
|
-
export declare const SHARED_HELPERS: string;
|
|
15
|
-
export declare function fillTemplate(template: string, contentHtml: string): string;
|
|
16
|
-
//# sourceMappingURL=html.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/render/html.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAQ/C,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;;2BAG2B;AAC3B,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3C;AAkCD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAyBxD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAA4C;AAO/F,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAC7D,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAc/C,eAAO,MAAM,UAAU,QAsBuB,CAAC;AAC/C,eAAO,MAAM,cAAc,QAG4B,CAAC;AAExD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAa1E"}
|
package/dist/render/html.js
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { PAGE_UI_CLASS, PAGE_UI_VIEWPORT, buildSharedHelpersJs, buildStyleSheet, pageShapeCss, pageUiCss, } from 'base-paint';
|
|
2
|
-
import { blocksCss } from 'base-paint/blocks';
|
|
3
|
-
import { HomeRenderError } from './errors.js';
|
|
4
|
-
export function escapeHtml(s) {
|
|
5
|
-
return s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''');
|
|
6
|
-
}
|
|
7
|
-
/** 可见文本归一:半角拉丁字母转全角(判据件只把半角当「英文裸词」)。数字与日期原样保留。
|
|
8
|
-
* 只用于**上屏的文本**;`data-*` 属性与 JSON 载荷一律保持原文(载荷是回执真相,不归一)。
|
|
9
|
-
* 数据里的半角拉丁(种子物品名「白色棉T恤-衣」之类)不归一就会以英文裸词上屏——判据件的红
|
|
10
|
-
* 就是这么来的(见收口证据件 §四之七)。 */
|
|
11
|
-
export function latinFree(s) {
|
|
12
|
-
return s.replace(/[A-Za-z]/g, (c) => String.fromCharCode(c.charCodeAt(0) + 0xfee0));
|
|
13
|
-
}
|
|
14
|
-
function itemHtml(n) {
|
|
15
|
-
const id = escapeHtml(String(n.id ?? ''));
|
|
16
|
-
const name = escapeHtml(String(n.name ?? ''));
|
|
17
|
-
const loc = escapeHtml(String(n.location ?? n.locations ?? ''));
|
|
18
|
-
const qty = n.quantity !== undefined ? ' ×' + escapeHtml(String(n.quantity)) : '';
|
|
19
|
-
// id 位没有值就不输出(曾把裸「#」占位符印上页);正文收本件自己的值:位置与数量/状态与到期日。
|
|
20
|
-
const extra = ['status', 'expires_at'].map((k) => escapeHtml(String(n[k] ?? ''))).filter((s) => s !== '' && !loc.includes(s)).join(' ');
|
|
21
|
-
return '<div class="item"><div class="item-head">' + (id === '' ? '' : '<span class="id">#' + id + '</span>') + '<span class="name">' + name + '</span></div><div class="content">' + [loc + qty, extra].filter((s) => s !== '').join(' ') + '</div></div>';
|
|
22
|
-
}
|
|
23
|
-
function listHtml(items) {
|
|
24
|
-
if (!items.length)
|
|
25
|
-
return '<div class="hm-empty">暂无记录</div>';
|
|
26
|
-
return items.map((x) => itemHtml(x)).join('');
|
|
27
|
-
}
|
|
28
|
-
/** 写库回执的「本次写入字段」逐行(#890):`data.detail.fields` 是 `[{k,v}]`,键名与值都由命令层给
|
|
29
|
-
* 中文(渲染层不翻译英文键,英文键上屏会被文案机审判成英文裸词)。形状不对就当没有,不抛。 */
|
|
30
|
-
function receiptFields(d) {
|
|
31
|
-
const det = d.detail;
|
|
32
|
-
if (!det || typeof det !== 'object' || Array.isArray(det))
|
|
33
|
-
return '';
|
|
34
|
-
const raw = det.fields;
|
|
35
|
-
if (!Array.isArray(raw))
|
|
36
|
-
return '';
|
|
37
|
-
return raw
|
|
38
|
-
.filter((f) => !!f && typeof f === 'object' && !Array.isArray(f))
|
|
39
|
-
.map((f) => '<div class="receipt-detail-row"><span class="receipt-detail-k">' + escapeHtml(String(f.k ?? ''))
|
|
40
|
-
+ '</span><span class="receipt-detail-v">' + escapeHtml(String(f.v ?? '')) + '</span></div>')
|
|
41
|
-
.join('');
|
|
42
|
-
}
|
|
43
|
-
// 按形状渲染 envelope 为 section 页;未知形状 throw 不返空页。
|
|
44
|
-
// #43 H2:analysis/fallback/resultset 经 HOME_KEY_SHAPES 不可达本函数(视图键仅 list/detail/receipt/stat;
|
|
45
|
-
// 数据族 resultset 走出口层短路直回 envelope,不进 HTML 交付链),保留作显式降级与未来扩展直调分支,单测直构 envelope 覆盖。
|
|
46
|
-
export function renderEnvelopeHtml(env) {
|
|
47
|
-
const head = '<section data-skill="home" data-shape="' + env.shape + '" data-key="' + escapeHtml(env.key) + '">';
|
|
48
|
-
const d = env.data;
|
|
49
|
-
switch (env.shape) {
|
|
50
|
-
case 'list': return head + listHtml(d.items) + '</section>';
|
|
51
|
-
case 'detail': return head + itemHtml(d.item) + '</section>';
|
|
52
|
-
case 'receipt': {
|
|
53
|
-
let msg = String(d.message ?? '');
|
|
54
|
-
// 看密码脱敏:HTML 快照不落明文(JSON 真相仍含明文,仅对话回显)。
|
|
55
|
-
if (env.key === 'home.ticket.write' && /密码/.test(msg))
|
|
56
|
-
msg = '密码已脱敏(仅对话 JSON 回显,不进 HTML)';
|
|
57
|
-
// #890:写库回执可以带「本次写入字段」逐行(`detail.fields`,键名与值都由命令层给中文)。
|
|
58
|
-
// 原先回执只印 message 一句(「已登记购买:#11」),写进去的价格/渠道/到期日全在页上看不见。
|
|
59
|
-
// 这里统一渲染成两列字段位;没有 `detail` 的回执照旧只印那一句。
|
|
60
|
-
const rows = receiptFields(d);
|
|
61
|
-
const body = rows === '' ? '' : '<div class="receipt-detail">' + rows + '</div>';
|
|
62
|
-
return head + '<div class="receipt">' + escapeHtml(msg) + body + '</div></section>';
|
|
63
|
-
}
|
|
64
|
-
case 'stat': {
|
|
65
|
-
const rows = Object.entries((d.metrics || {}));
|
|
66
|
-
return head + rows.map(([k, v]) => '<div class="stat"><b>' + v + '</b><span>' + escapeHtml(k) + '</span></div>').join('') + '</section>';
|
|
67
|
-
}
|
|
68
|
-
case 'analysis': return head + '<div class="analysis">' + escapeHtml(String(d.summary ?? '')) + '</div></section>';
|
|
69
|
-
case 'fallback': return head + '<div data-degraded="1">' + escapeHtml(String(d.reason ?? '')) + '</div></section>';
|
|
70
|
-
default: throw new HomeRenderError('HOME_SHAPE_MISMATCH', '无法渲染形状:' + String(env.shape));
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
export function estimateBytes(html) { return Buffer.byteLength(html, 'utf8'); }
|
|
74
|
-
// #928 收口:**体积门撤除**(用户裁定「不限制 html 文件大小」)。
|
|
75
|
-
// 此前 `HOME_HTML_MAX_BYTES` 256KB + `assertHtmlSize` 超限大声失败,代价是位置/标签两页拿不到页面;
|
|
76
|
-
// 现改为不截断、不设上限——库多大就出多大页,分页只留调用方显式 `limit` 与 `q` 两个手段。
|
|
77
|
-
// 共享标记填充:CSS/HELPERS/CONTENT 三标记各恰出现 1 次,否则 throw。
|
|
78
|
-
export const SHARED_CSS_MARKER = '<!--SHARED-CSS-->';
|
|
79
|
-
export const SHARED_HELPERS_MARKER = '<!--SHARED-HELPERS-->';
|
|
80
|
-
export const CONTENT_MARKER = '<!--CONTENT-->';
|
|
81
|
-
/** 页面级配方的两处**模板投影串**(#920):60 份模板一个字不改,由 `fillTemplate` 把这两串换成新形状。
|
|
82
|
-
* 各自须**恰出现 1 次**,缺任一即抛(与上方三枚标记同一 fail-closed 口径,逐条判定同为 1)。
|
|
83
|
-
* 为什么不静默降级:整套配方规则挂在根类 `.ilife-page-ui` 之下,投影漏一处就是「样式在、根类不在」
|
|
84
|
-
* 的半接状态——页面上看不出任何异常,只有窄档的两列表还是老形状(「项/值 逐格重印列名」),
|
|
85
|
-
* 正是本票要消掉的那一类静默失效。 */
|
|
86
|
-
const TEMPLATE_ROOT_ATTR = 'class="page"';
|
|
87
|
-
const TEMPLATE_VIEWPORT_META = 'content="width=device-width,initial-scale=1"';
|
|
88
|
-
/** 投影目标:版面根加上配方根类 + viewport 换带 `viewport-fit=cover` 的串(`env(safe-area-inset-*)`
|
|
89
|
-
* 在 iOS 上不写它恒取 0)。两个取值都从公共层 `pageUi.ts` 取,本件不另写一份字面量。 */
|
|
90
|
-
const PAGE_UI_ROOT_ATTR = 'class="page ' + PAGE_UI_CLASS + '"';
|
|
91
|
-
const PAGE_UI_VIEWPORT_META = 'content="' + PAGE_UI_VIEWPORT + '"';
|
|
92
|
-
export const SHARED_CSS = '.page{font-family:system-ui,sans-serif;max-width:720px;margin:0 auto;padding:12px}.item{border:1px solid #ddd;border-radius:8px;padding:8px;margin:8px 0}.item-head{display:flex;gap:8px;align-items:center}.badge{background:#eee;border-radius:4px;padding:0 6px}.receipt{background:#f0fff0;border:1px solid #090;border-radius:8px;padding:12px}.stat{display:flex;gap:8px}.analysis{white-space:pre-wrap}.hm-empty{color:#888}'
|
|
93
|
-
// 卡路里同款复制区样式:公共层样式表 + 区块样式(复制块/动作条/三格式菜单/toast)。
|
|
94
|
-
// 落在 `<!--SHARED-CSS-->` 槽,随模板全页下发;页内 `PAGE_CSS` 不动。
|
|
95
|
-
+ '\n' + buildStyleSheet().css + '\n' + blocksCss()
|
|
96
|
-
// #890 · 页族抬头(`.fam-head`):43–64 共 22 页此前**没有任何规则**碰它,抬头与正文同一档,
|
|
97
|
-
// 「这一页属于哪个域」在版面上读不出层级(六维 ② 恒 1)。`.fam-head` 的标记由各页族模块自己写
|
|
98
|
-
// (8 个域 26 页),故规则只能住共用样式表这一层,住哪一页都漏其余的页。
|
|
99
|
-
// 外观与「统计总览」四页(`stats/pages/*.ts` 的 `.fam-name`/`.fam-key`)一致:小字+加重+域色。
|
|
100
|
-
// `:not([class])` 只吃没有自己命名的裸 `<span>` —— stats 四页给两个 span 起了 `.fam-name`/
|
|
101
|
-
// `.fam-key` 名(各页 PAGE_CSS 后到,但本规则若不加这个排除会因选择器更具体而盖掉它们的灰字)。
|
|
102
|
-
+ '\n.fam-head{display:flex;gap:8px;align-items:baseline;margin:0 0 10px}'
|
|
103
|
-
+ '.fam-head>span:not([class]){font-size:12px;font-weight:800;color:#0a63d6}'
|
|
104
|
-
// #890 · 回执行「本次写入字段」的两列字段位(见 `receiptFields`):左键名右值,长值回行不撑破卡。
|
|
105
|
-
+ '\n.receipt-detail{margin:10px 0 2px;display:grid;gap:4px}'
|
|
106
|
-
+ '.receipt-detail-row{display:grid;grid-template-columns:88px 1fr;gap:8px;font-size:13.5px}'
|
|
107
|
-
+ '.receipt-detail-k{color:#6e6e73}.receipt-detail-v{color:#1d1d1f;font-weight:600;overflow-wrap:anywhere}'
|
|
108
|
-
// #920 页面级移动端配方(#525 公共层两件)接进本包:**整包恒开**,不走逐页 opt-in。
|
|
109
|
-
// 此前本包 60 份模板自拼文档壳,只有 `buildStyleSheet()+blocksCss()`(区块样式),没有
|
|
110
|
-
// **页面级**那一层(断点/44px 触摸区/安全区/窄屏表格行为/页内定位)——窄档下两列表
|
|
111
|
-
// 渲染成「项/值 逐格重印列名」。两件都从 `base-paint` 顶层取,本件只负责拼进共享样式槽。
|
|
112
|
-
// 规则全套挂在根类 `.ilife-page-ui` 之下(`pageUi.ts` 的口径),根类由下面的 `fillTemplate`
|
|
113
|
-
// 投影加到版面根上——两处必须成对出现,缺一处即整套规则一条不命中。
|
|
114
|
-
+ '\n' + pageUiCss() + '\n' + pageShapeCss();
|
|
115
|
-
export const SHARED_HELPERS = '<script>function copyItem(id){var e=document.getElementById(id);if(e&&navigator.clipboard){navigator.clipboard.writeText(e.innerText);}}</script>'
|
|
116
|
-
// 卡路里同款复制运行时:双通道复制 + toast 反馈 + `[data-action-id]` 委派(含三格式菜单开合)。
|
|
117
|
-
// 老 `copyItem` 保留作迁移期兼容(旧页内联 `onclick="copyItem(...)"` 仍能点),46 页收完后再撤。
|
|
118
|
-
+ '\n<script>' + buildSharedHelpersJs() + '</script>';
|
|
119
|
-
export function fillTemplate(template, contentHtml) {
|
|
120
|
-
for (const m of [SHARED_CSS_MARKER, SHARED_HELPERS_MARKER, CONTENT_MARKER]) {
|
|
121
|
-
if (template.split(m).length - 1 !== 1)
|
|
122
|
-
throw new HomeRenderError('HOME_MARKER_INVALID', '标记须恰出现 1 次:' + m);
|
|
123
|
-
}
|
|
124
|
-
for (const s of [TEMPLATE_ROOT_ATTR, TEMPLATE_VIEWPORT_META]) {
|
|
125
|
-
if (template.split(s).length - 1 !== 1)
|
|
126
|
-
throw new HomeRenderError('HOME_MARKER_INVALID', '配方投影串须恰出现 1 次:' + s);
|
|
127
|
-
}
|
|
128
|
-
return template
|
|
129
|
-
.split(TEMPLATE_ROOT_ATTR).join(PAGE_UI_ROOT_ATTR)
|
|
130
|
-
.split(TEMPLATE_VIEWPORT_META).join(PAGE_UI_VIEWPORT_META)
|
|
131
|
-
.split(SHARED_CSS_MARKER).join('<style>' + SHARED_CSS + '</style>')
|
|
132
|
-
.split(SHARED_HELPERS_MARKER).join(SHARED_HELPERS)
|
|
133
|
-
.split(CONTENT_MARKER).join(contentHtml);
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=html.js.map
|