hap-cli 0.8.12__tar.gz → 0.8.13__tar.gz
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.
- {hap_cli-0.8.12 → hap_cli-0.8.13}/PKG-INFO +1 -1
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/__init__.py +1 -1
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/post_cmd.py +2 -2
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/post.py +24 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_core.py +98 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli.egg-info/PKG-INFO +1 -1
- {hap_cli-0.8.12 → hap_cli-0.8.13}/MANIFEST.in +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/README.md +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/app_live_tests/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/app_live_tests/__main__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/app_live_tests/config.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/app_live_tests/harness.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/app_live_tests/smoke.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/app_live_tests/state.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/README.md +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/README_CN.md +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/__main__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/app_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/app_creator_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/app_editor_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/auth_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/calendar_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/chart_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/chat_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/chatbot_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/config_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/contact_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/department_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/group_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/icon_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/instance_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/node_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/optionset_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/page_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/record_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/region_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/role_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/update_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/upload_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/v3_registry.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/workflow_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/commands/worksheet_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/context.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/action_spec_adapter.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/_hapmeta/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/_hapmeta/control_type_codes.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/_hapmeta/worksheet_templates.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/charts.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/cleanup.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/compiler.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/config.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/design/design.schema.json +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/errors.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/examples/minimal.design.json +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/executor.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/fields.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/hap.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/merge.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/recording/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/recording/console.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/recording/jsonl.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/recording/mirror.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/recording/report.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/schema.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/seed/INSTRUCTIONS.md +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/seed/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/seed/cli.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/seed/executor.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/seed/resources/attachments.json +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/seed/resources/sample.docx +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/seed/resources/sample.pdf +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/seed/resources/sample_images.json +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/seed/template.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/selftest.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/smoke.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/steps.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/store.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/validate.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/workflow_dsl.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/auth.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/calendar_mod.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/chart.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/chat.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/chatbot.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/cli_access.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/contact.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/control_type_codes.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/department.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/editor/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/editor/_hapmeta/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/editor/_hapmeta/control_type_codes.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/editor/apply.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/editor/componentlower.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/editor/editspec.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/editor/errors.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/editor/fieldlower.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/editor/jsonschema_mini.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/editor/models.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/editor/ops.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/editor/planner.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/editor/reader.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/field_normalizer.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/field_spec_adapter.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/filter_translator.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/flow_node.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/global_meta.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/group.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/icon_index.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/instance.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/logger.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/optionset.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/page.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/record.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/response_crypto.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/role.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/role_perm_builder.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/session.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/token_crypto.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/update.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/upload.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/v3/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/v3/dispatcher.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/v3/render.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/v3/schema.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/view_spec_adapter.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/workflow.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/workflow_node_dsl.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/worksheet.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/worksheet_templates.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/hap_cli.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/i18n.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/locale/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/locale/messages.json +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/locale/messages.schema.json +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/conftest.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_app_creator.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_app_editor.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_app_export_usage.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_auth_prerelease.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_bug_036430.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_chart.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_cli_access.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_config_cmd.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_destructive_confirm_cli.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_full_e2e.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_global_meta.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_i18n.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_instance_history_cli.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_integration.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_integration_approval.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_integration_approval_actions.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_integration_calendar.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_integration_destructive.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_integration_misc.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_integration_post.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_integration_social.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_integration_v3.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_integration_workflow.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_integration_worksheet_extra.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_multi_profile.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_org_approval_v3_semantic_cli.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_org_id_cli.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_org_id_docs.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_parameter_conventions.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_parameter_mapping_registry.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_record_batch_v3_semantic_cli.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_record_field_alias.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_record_v3_semantic_cli.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_semantic_types_registry.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_update.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_v3_api_schema_loader.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_v3_dispatcher.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_v3_registry_coverage.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_v3_session.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_v3_yaml_translation.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_workflow_list_cli.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_workflow_v3_semantic_cli.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_worksheet_crud_cli.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/tests/test_worksheet_v3_semantic_cli.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/utils/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/utils/formatting.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/utils/options.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/utils/parameter_mapping.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli.egg-info/SOURCES.txt +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli.egg-info/dependency_links.txt +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli.egg-info/entry_points.txt +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli.egg-info/requires.txt +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli.egg-info/top_level.txt +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/__main__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/_wftest.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/charts.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/cleanup.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/compiler.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/config.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/errors.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/executor.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/fields.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/hap.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/recording/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/recording/console.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/recording/jsonl.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/recording/mirror.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/recording/report.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/schema.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/seed/__init__.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/seed/cli.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/seed/executor.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/seed/template.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/selftest.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/smoke.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/step.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/steps.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/store.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/live_tests/workflow_dsl.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/setup.cfg +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/setup.py +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/skills/cli/hap-cli-app-editor/scripts/editspec/component.schema.json +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/skills/cli/hap-cli-app-editor/scripts/editspec/custom-action.schema.json +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/skills/cli/hap-cli-app-editor/scripts/editspec/envelope.schema.json +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/skills/cli/hap-cli-app-editor/scripts/editspec/field.schema.json +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/INDEX.json +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/add_member_to_role.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/batch_delete_records.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/create_optionset.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/create_role.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/delete_optionset.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/delete_record.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/delete_role.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/delete_worksheet.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/get_app_info.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/get_app_knowledge_list.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/get_app_worksheets_list.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/get_optionset_list.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/get_record_details.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/get_record_discussions.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/get_record_list.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/get_record_logs.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/get_record_pivot_data.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/get_record_relations.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/get_record_share_link.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/get_regions.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/get_role_details.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/get_role_list.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/knowledge_search.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/leave_all_roles.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/remove_member_from_role.yaml +0 -0
- {hap_cli-0.8.12 → hap_cli-0.8.13}/sources/v3-api-schema/update_optionset.yaml +0 -0
|
@@ -425,8 +425,8 @@ def _normalize_scope(scope: str) -> str:
|
|
|
425
425
|
"fav=your favorites, group=posts in a group (requires --group-id)."
|
|
426
426
|
),
|
|
427
427
|
)
|
|
428
|
-
@click.option("--account-id", default="", help="
|
|
429
|
-
@click.option("--group-id", default="", help="
|
|
428
|
+
@click.option("--account-id", default="", help="Show only this member's posts")
|
|
429
|
+
@click.option("--group-id", default="", help="Show only this group's posts")
|
|
430
430
|
@click.option("-k", "--keywords", default="", help="Keyword filter")
|
|
431
431
|
@click.option("--start-date", default="", help="Only posts on or after this date (YYYY-MM-DD)")
|
|
432
432
|
@click.option("--end-date", default="", help="Only posts on or before this date (YYYY-MM-DD)")
|
|
@@ -72,7 +72,31 @@ def get_post_list(
|
|
|
72
72
|
For ``lType == "project"`` (org-wide feed), ``range`` follows the
|
|
73
73
|
frontend convention when not overridden: no projectId → 0
|
|
74
74
|
(cross-network), concrete projectId → 2.
|
|
75
|
+
|
|
76
|
+
Effective-scope derivation (mirrors ``postActions.loadPosts``): the
|
|
77
|
+
server keys off ``lType`` to decide which feed to read, and silently
|
|
78
|
+
ignores ``aId`` / ``gID`` when they don't match the declared scope.
|
|
79
|
+
The frontend therefore derives the effective ``lType`` from the
|
|
80
|
+
presence of the ids — a group id forces ``group``, an account id
|
|
81
|
+
forces ``user`` — rather than trusting the nominal list type. We do
|
|
82
|
+
the same so that e.g. ``--account-id`` filters the author feed even
|
|
83
|
+
when the caller left the scope at its org-wide default.
|
|
84
|
+
|
|
85
|
+
``myself`` is handled specially: the bare ``lType=myself`` scope
|
|
86
|
+
lists the caller's posts but the server drops keyword / date filters
|
|
87
|
+
on it. The product's "我的"(My) tab actually routes through
|
|
88
|
+
``lType=user`` with the caller's own accountId, so we resolve
|
|
89
|
+
``myself`` to that shape when the session knows the caller's id
|
|
90
|
+
(falling back to the raw scope otherwise).
|
|
75
91
|
"""
|
|
92
|
+
if list_type == "myself" and not account_id and not group_id and session.account_id:
|
|
93
|
+
account_id = session.account_id
|
|
94
|
+
|
|
95
|
+
if group_id:
|
|
96
|
+
list_type = "group"
|
|
97
|
+
elif account_id:
|
|
98
|
+
list_type = "user"
|
|
99
|
+
|
|
76
100
|
data: dict[str, Any] = {
|
|
77
101
|
"fType": source_type or "feed",
|
|
78
102
|
"lType": list_type,
|
|
@@ -3232,6 +3232,104 @@ class TestPost:
|
|
|
3232
3232
|
# project scope with no projectId → cross-network range.
|
|
3233
3233
|
assert body["range"] == 0
|
|
3234
3234
|
|
|
3235
|
+
# ---- Effective-scope derivation (pd-openweb postActions.loadPosts) ----
|
|
3236
|
+
# The feed derives the effective lType from the presence of an account
|
|
3237
|
+
# id / group id, not just the nominal list_type: an account id forces
|
|
3238
|
+
# the member feed, a group id forces the group feed. Without that
|
|
3239
|
+
# derivation an `aId` sent under lType=project is silently ignored by
|
|
3240
|
+
# the server.
|
|
3241
|
+
|
|
3242
|
+
@patch("hap_cli.core.session.requests.post")
|
|
3243
|
+
def test_account_id_forces_user_scope(self, mock_post, mock_session):
|
|
3244
|
+
"""An account id under the org scope must promote lType to user."""
|
|
3245
|
+
mock_post.return_value = _mock_response({"postList": []})
|
|
3246
|
+
from hap_cli.core import post as post_mod
|
|
3247
|
+
post_mod.get_post_list(
|
|
3248
|
+
mock_session,
|
|
3249
|
+
list_type="project",
|
|
3250
|
+
account_id="u-1",
|
|
3251
|
+
)
|
|
3252
|
+
body = mock_post.call_args[1]["json"]
|
|
3253
|
+
assert body["lType"] == "user"
|
|
3254
|
+
assert body["aId"] == "u-1"
|
|
3255
|
+
# User scope is cross-network — no range constraint.
|
|
3256
|
+
assert "range" not in body
|
|
3257
|
+
|
|
3258
|
+
@patch("hap_cli.core.session.requests.post")
|
|
3259
|
+
def test_group_id_forces_group_scope(self, mock_post, mock_session):
|
|
3260
|
+
"""A group id under the org scope must promote lType to group."""
|
|
3261
|
+
mock_post.return_value = _mock_response({"postList": []})
|
|
3262
|
+
from hap_cli.core import post as post_mod
|
|
3263
|
+
post_mod.get_post_list(
|
|
3264
|
+
mock_session,
|
|
3265
|
+
list_type="project",
|
|
3266
|
+
group_id="g-1",
|
|
3267
|
+
)
|
|
3268
|
+
body = mock_post.call_args[1]["json"]
|
|
3269
|
+
assert body["lType"] == "group"
|
|
3270
|
+
assert body["gID"] == "g-1"
|
|
3271
|
+
assert "range" not in body
|
|
3272
|
+
|
|
3273
|
+
@patch("hap_cli.core.session.requests.post")
|
|
3274
|
+
def test_group_id_wins_over_account_id(self, mock_post, mock_session):
|
|
3275
|
+
"""When both ids are present the group feed wins (frontend order)."""
|
|
3276
|
+
mock_post.return_value = _mock_response({"postList": []})
|
|
3277
|
+
from hap_cli.core import post as post_mod
|
|
3278
|
+
post_mod.get_post_list(
|
|
3279
|
+
mock_session,
|
|
3280
|
+
list_type="project",
|
|
3281
|
+
account_id="u-1",
|
|
3282
|
+
group_id="g-1",
|
|
3283
|
+
)
|
|
3284
|
+
body = mock_post.call_args[1]["json"]
|
|
3285
|
+
assert body["lType"] == "group"
|
|
3286
|
+
|
|
3287
|
+
@patch("hap_cli.core.session.requests.post")
|
|
3288
|
+
def test_myself_resolves_to_current_user_feed(self, mock_post, mock_session):
|
|
3289
|
+
"""`myself` routes through the caller's user feed so keyword/date
|
|
3290
|
+
filters actually apply (the bare lType=myself scope ignores them)."""
|
|
3291
|
+
mock_session.account_id = "me-1"
|
|
3292
|
+
mock_post.return_value = _mock_response({"postList": []})
|
|
3293
|
+
from hap_cli.core import post as post_mod
|
|
3294
|
+
post_mod.get_post_list(
|
|
3295
|
+
mock_session,
|
|
3296
|
+
list_type="myself",
|
|
3297
|
+
keywords="report",
|
|
3298
|
+
)
|
|
3299
|
+
body = mock_post.call_args[1]["json"]
|
|
3300
|
+
assert body["lType"] == "user"
|
|
3301
|
+
assert body["aId"] == "me-1"
|
|
3302
|
+
assert body["keywords"] == "report"
|
|
3303
|
+
|
|
3304
|
+
@patch("hap_cli.core.session.requests.post")
|
|
3305
|
+
def test_myself_without_resolved_account_falls_back(self, mock_post, mock_session):
|
|
3306
|
+
"""If the caller's account id is unknown, `myself` passes through
|
|
3307
|
+
unchanged rather than silently becoming an empty user feed."""
|
|
3308
|
+
mock_session.account_id = ""
|
|
3309
|
+
mock_post.return_value = _mock_response({"postList": []})
|
|
3310
|
+
from hap_cli.core import post as post_mod
|
|
3311
|
+
post_mod.get_post_list(mock_session, list_type="myself")
|
|
3312
|
+
body = mock_post.call_args[1]["json"]
|
|
3313
|
+
assert body["lType"] == "myself"
|
|
3314
|
+
assert "aId" not in body
|
|
3315
|
+
|
|
3316
|
+
@patch("hap_cli.core.session.requests.post")
|
|
3317
|
+
def test_search_account_id_forces_user_scope(self, mock_post, mock_session):
|
|
3318
|
+
"""search_posts shares the derivation — an author filter promotes
|
|
3319
|
+
the request to the member feed."""
|
|
3320
|
+
mock_post.return_value = _mock_response({"postList": []})
|
|
3321
|
+
from hap_cli.core import post as post_mod
|
|
3322
|
+
post_mod.search_posts(
|
|
3323
|
+
mock_session,
|
|
3324
|
+
keywords="launch",
|
|
3325
|
+
list_type="project",
|
|
3326
|
+
account_id="u-1",
|
|
3327
|
+
)
|
|
3328
|
+
body = mock_post.call_args[1]["json"]
|
|
3329
|
+
assert body["lType"] == "user"
|
|
3330
|
+
assert body["aId"] == "u-1"
|
|
3331
|
+
assert body["keywords"] == "launch"
|
|
3332
|
+
|
|
3235
3333
|
# ---- Wave 2: search_posts (GetPostListByLegacyPara) ----
|
|
3236
3334
|
|
|
3237
3335
|
@patch("hap_cli.core.session.requests.post")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hap_cli-0.8.12 → hap_cli-0.8.13}/hap_cli/core/app_creator/seed/resources/sample_images.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|