@ai-matrx/records 0.30.0 → 0.37.0
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/CHANGELOG.md +108 -0
- package/dist/core/index.cjs +126 -7
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +100 -7
- package/dist/core/index.d.ts +100 -7
- package/dist/core/index.js +126 -7
- package/dist/core/index.js.map +1 -1
- package/dist/{field-D08d_e7R.d.cts → field-CWBdZfFv.d.cts} +218 -4
- package/dist/{field-D08d_e7R.d.ts → field-CWBdZfFv.d.ts} +218 -4
- package/dist/index.cjs +19 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +237 -141
- package/dist/index.d.ts +237 -141
- package/dist/index.js +19 -3
- package/dist/index.js.map +1 -1
- package/dist/react/index.cjs +126 -7
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +539 -144
- package/dist/react/index.d.ts +539 -144
- package/dist/react/index.js +126 -7
- package/dist/react/index.js.map +1 -1
- package/dist/use-cases/index.cjs +17 -3
- package/dist/use-cases/index.cjs.map +1 -1
- package/dist/use-cases/index.d.cts +1 -1
- package/dist/use-cases/index.d.ts +1 -1
- package/dist/use-cases/index.js +17 -3
- package/dist/use-cases/index.js.map +1 -1
- package/package.json +1 -1
package/dist/react/index.cjs
CHANGED
|
@@ -49,6 +49,8 @@ __export(react_exports, {
|
|
|
49
49
|
RULE_NODE_KINDS: () => RULE_NODE_KINDS,
|
|
50
50
|
RULE_USES: () => RULE_USES,
|
|
51
51
|
RecordsProvider: () => RecordsProvider,
|
|
52
|
+
STAGE_RULE_ENFORCEMENT: () => STAGE_RULE_ENFORCEMENT,
|
|
53
|
+
STAGE_RULE_ON_FAIL: () => STAGE_RULE_ON_FAIL,
|
|
52
54
|
STORAGE_MODES: () => STORAGE_MODES,
|
|
53
55
|
STORE_DOORS: () => STORE_DOORS,
|
|
54
56
|
STORE_KNOBS: () => STORE_KNOBS,
|
|
@@ -189,6 +191,7 @@ var RULE_NODE_KINDS = [
|
|
|
189
191
|
{ node: "parent_field", evaluated_by: "W1-RULE-APPLY" },
|
|
190
192
|
{ node: "present", evaluated_by: "W1-RULE" },
|
|
191
193
|
{ node: "previous", evaluated_by: "PIPELINES" },
|
|
194
|
+
{ node: "sibling_count", evaluated_by: "STAGE-RULES" },
|
|
192
195
|
{ node: "stage_count", evaluated_by: "PIPELINES" },
|
|
193
196
|
{ node: "sub", evaluated_by: "W1-RULE" }
|
|
194
197
|
];
|
|
@@ -516,7 +519,9 @@ var STORE_DOORS = [
|
|
|
516
519
|
{ name: "pin_agent_cells", args: "p_new jsonb, p_old jsonb, p_agent_keys text[]", returns: "jsonb", security: "invoker" },
|
|
517
520
|
{ name: "pipeline_board", args: "p_organization_id uuid, p_table_id uuid, p_measure text DEFAULT NULL::text", returns: "TABLE(stage_key text, stage_label text, stage_position integer, cards bigint, total numeric, wip_limit integer, over_limit boolean)", security: "definer" },
|
|
518
521
|
{ name: "pipeline_declare", args: "p_organization_id uuid, p_table_id uuid, p_spec jsonb", returns: "jsonb", security: "definer" },
|
|
522
|
+
{ name: "pipeline_gate_preview", args: "p_organization_id uuid, p_table_id uuid, p_stage text, p_gate jsonb", returns: "jsonb", security: "definer" },
|
|
519
523
|
{ name: "pipeline_move", args: "p_organization_id uuid, p_record_id uuid, p_to text, p_also jsonb DEFAULT '{}'::jsonb, p_expected_version integer DEFAULT NULL::integer", returns: "jsonb", security: "definer" },
|
|
524
|
+
{ name: "pipeline_pending", args: "p_organization_id uuid, p_table_id uuid", returns: "jsonb", security: "definer" },
|
|
520
525
|
{ name: "pipeline_read", args: "p_organization_id uuid, p_table_id uuid", returns: "jsonb", security: "definer" },
|
|
521
526
|
{ name: "pipeline_transition_refusal", args: "p_organization_id uuid, p_record_id uuid, p_to text", returns: "jsonb", security: "definer" },
|
|
522
527
|
{ name: "portal_admits", args: "p_organization_id uuid, p_user_id uuid DEFAULT NULL::uuid", returns: "boolean", security: "definer" },
|
|
@@ -583,6 +588,7 @@ var STORE_DOORS = [
|
|
|
583
588
|
{ name: "record_carrying_edges", args: "p_id uuid, p_data_class text, p_data jsonb, p_deleted_at timestamp with time zone", returns: "TABLE(container_id uuid, item_id uuid, edge_role text)", security: "invoker" },
|
|
584
589
|
{ name: "record_delete", args: "p_organization_id uuid, p_record_id uuid", returns: "timestamp with time zone", security: "definer" },
|
|
585
590
|
{ name: "record_history", args: "p_organization_id uuid, p_record_id uuid, p_limit integer DEFAULT 200, p_offset integer DEFAULT 0", returns: "TABLE(version integer, occurred_at timestamp with time zone, operation text, operation_label text, actor jsonb, changes jsonb, migration_id uuid, undoable boolean)", security: "definer" },
|
|
591
|
+
{ name: "record_platform_keys", args: "", returns: "text[]", security: "invoker" },
|
|
586
592
|
{ name: "record_relation_edges", args: "p_organization_id uuid, p_id uuid, p_table_id uuid, p_data_class text, p_data jsonb, p_deleted_at timestamp with time zone", returns: "TABLE(target_id uuid, edge_role text, field_id uuid, ord integer)", security: "invoker" },
|
|
587
593
|
{ name: "record_reparent", args: "p_organization_id uuid, p_record_id uuid, p_parent_id uuid", returns: "void", security: "definer" },
|
|
588
594
|
{ name: "record_resolve", args: "p_organization_id uuid, p_id uuid", returns: "jsonb", security: "definer" },
|
|
@@ -591,6 +597,7 @@ var STORE_DOORS = [
|
|
|
591
597
|
{ name: "record_restore_version", args: "p_organization_id uuid, p_record_id uuid, p_version integer", returns: "jsonb", security: "definer" },
|
|
592
598
|
{ name: "record_restore_version", args: "p_organization_id uuid, p_record_id uuid, p_version integer, p_author jsonb", returns: "jsonb", security: "definer" },
|
|
593
599
|
{ name: "record_scope_context", args: "p_organization_id uuid, p_record_id uuid, p_relations integer DEFAULT 12, p_history integer DEFAULT 15, p_siblings integer DEFAULT 8", returns: "jsonb", security: "definer" },
|
|
600
|
+
{ name: "record_stage_pending", args: "p_organization_id uuid, p_record_id uuid", returns: "jsonb", security: "definer" },
|
|
594
601
|
{ name: "record_state_as_of", args: "p_record_id uuid, p_at timestamp with time zone", returns: "TABLE(state jsonb, replayed boolean)", security: "definer" },
|
|
595
602
|
{ name: "record_table", args: "p_organization_id uuid, p_record_id uuid", returns: "uuid", security: "definer" },
|
|
596
603
|
{ name: "record_update", args: "p_organization_id uuid, p_record_id uuid, p_patch jsonb, p_expected_version integer DEFAULT NULL::integer", returns: "integer", security: "definer" },
|
|
@@ -654,6 +661,8 @@ var STORE_DOORS = [
|
|
|
654
661
|
{ name: "size_refusal", args: "p_organization_id uuid, p_data jsonb", returns: "text", security: "invoker" },
|
|
655
662
|
{ name: "source_next_pointer", args: "p_sources jsonb", returns: "text", security: "invoker" },
|
|
656
663
|
{ name: "source_pointer", args: "p_sources jsonb, p_source jsonb", returns: "text", security: "invoker" },
|
|
664
|
+
{ name: "stage_rule_enforcement", args: "p_organization_id uuid", returns: "text", security: "invoker" },
|
|
665
|
+
{ name: "stage_rule_on_fail_kinds", args: "", returns: "TABLE(behaviour text, note text)", security: "invoker" },
|
|
657
666
|
{ name: "stamp_value_envelopes", args: "p_data jsonb, p_actor text, p_on_behalf_of text, p_at timestamp with time zone", returns: "jsonb", security: "invoker" },
|
|
658
667
|
{ name: "storage_modes", args: "", returns: "text[]", security: "invoker" },
|
|
659
668
|
{ name: "store_is_open", args: "p_organization_id uuid DEFAULT NULL::uuid", returns: "boolean", security: "invoker" },
|
|
@@ -664,6 +673,7 @@ var STORE_DOORS = [
|
|
|
664
673
|
{ name: "subscriptions", args: "p_organization_id uuid, p_table_id uuid DEFAULT NULL::uuid", returns: "TABLE(rule_id uuid, name text, table_id uuid, saved_view_id uuid, cadence text, schedule text, quiet_hours jsonb, channel text, recipient_user_id uuid, event_key text, muted boolean, mine boolean, i_may_mute boolean, last_sent_at timestamp with time zone, next_digest_at timestamp with time zone)", security: "definer" },
|
|
665
674
|
{ name: "table_capacity", args: "p_organization_id uuid, p_table_id uuid", returns: "jsonb", security: "definer" },
|
|
666
675
|
{ name: "table_carries_its_rows", args: "p_user_id uuid, p_table_id uuid, p_required permission_level DEFAULT 'viewer'::permission_level", returns: "boolean", security: "definer" },
|
|
676
|
+
{ name: "table_column_source", args: "p_organization_id uuid, p_table_id uuid", returns: "text", security: "invoker" },
|
|
667
677
|
{ name: "table_contents", args: "p_organization_id uuid, p_table_id uuid", returns: "TABLE(record_id uuid, kind text, goes_at integer)", security: "invoker" },
|
|
668
678
|
{ name: "table_declare", args: "p_organization_id uuid, p_spec jsonb", returns: "uuid", security: "definer" },
|
|
669
679
|
{ name: "table_has_a_visible_record", args: "p_user uuid, p_organization_id uuid, p_table_id uuid", returns: "boolean", security: "definer" },
|
|
@@ -678,6 +688,7 @@ var STORE_DOORS = [
|
|
|
678
688
|
{ name: "tables_at_home", args: "p_organization_id uuid, p_home_ids uuid[]", returns: "TABLE(table_id uuid, home_record_id uuid, kind text)", security: "definer" },
|
|
679
689
|
{ name: "tables_described_without_asking", args: "", returns: "TABLE(function_name text, identity_args text, why text)", security: "invoker" },
|
|
680
690
|
{ name: "trg_associations_bump_visibility", args: "", returns: "trigger", security: "definer" },
|
|
691
|
+
{ name: "undeclared_keys", args: "p_organization_id uuid, p_table_id uuid, p_data jsonb", returns: "text[]", security: "invoker" },
|
|
681
692
|
{ name: "validate_custom_fields", args: "p_token text, p_organization_id uuid, p_values jsonb", returns: "void", security: "invoker" },
|
|
682
693
|
{ name: "validate_value_envelope", args: "p_organization_id uuid, p_fields custom.record[], p_data jsonb", returns: "void", security: "invoker" },
|
|
683
694
|
{ name: "validate_values", args: "p_organization_id uuid, p_fields custom.record[], p_values jsonb, p_record_type text DEFAULT NULL::text", returns: "void", security: "invoker" },
|
|
@@ -778,6 +789,7 @@ var STORE_KNOBS = [
|
|
|
778
789
|
{ key: "sandbox_message_bytes", value: "65536", type: "integer" },
|
|
779
790
|
{ key: "sandbox_org_components", value: "true", type: "boolean" },
|
|
780
791
|
{ key: "signup_provisioning_guard", value: "false", type: "boolean" },
|
|
792
|
+
{ key: "stage_rule_enforcement", value: '"refuse"', type: "enum" },
|
|
781
793
|
{ key: "system_enabled", value: "false", type: "boolean" },
|
|
782
794
|
{ key: "table_record_ceiling", value: "150000", type: "integer" },
|
|
783
795
|
{ key: "value_max_bytes", value: "100000", type: "integer" },
|
|
@@ -787,19 +799,20 @@ var STORE_REFUSAL_CODES = [
|
|
|
787
799
|
{ code: "02000", raised_by: "_checklist_instantiate,checklist_declare,checklist_run,checklist_step_complete,checklist_step_refusal,checklist_template_shape,conversation_scope_bind,dashboard_delete,dashboard_run,doc_letterhead,doc_render_body,doc_render_document,doc_render_read,doc_sign,doc_signature_intact,doc_signature_read,doc_template_delete,doc_template_read,doc_template_save,enrich_pin,entity_field_retire,entity_field_update,entity_record_read,entity_value_write,external_history_event,external_rows,external_stub_upsert,external_writes_set,io_restore,migrate_delete,migrate_extract_parent,migrate_merge,migrate_reclass,migrate_rename,migrate_reparent,migrate_retype,migrate_split,migrate_undo,organization_clear,portal_card,portal_declare,portal_invite,portal_preview,portal_principal_bind,portal_revoke,read_record,record_delete,record_restore,record_restore_preview,record_table,record_update,relation_uncarry,share_access,share_grant,share_lane_set,share_people,share_revoke,sign_request_cancel,sign_request_create,sign_request_remind,sign_request_unchanged,visibility_as_of,work_approval_decide,work_approval_read,work_approval_request,work_assign,work_record_states,work_set_state" },
|
|
788
800
|
{ code: "0A000", raised_by: "checklist_step_complete,external_rows,external_source_declare,external_write_through,promote_field,promoted_index_expr,promoted_query_sql,promoted_read,rule_eval,work_assign" },
|
|
789
801
|
{ code: "22003", raised_by: "context_resolve" },
|
|
790
|
-
{ code: "22004", raised_by: "_entity_custom_fields_guard,_value_envelope,actor_word,agg_assert_key,agg_sql,anon_capture,anon_token_issue,anon_write,assert_client_may_reach,booking_declare,capture_submit,checklist_declare,context_resolve,dashboard_block_normalize,dashboard_declare,dashboard_window_sql,doc_render_write,doc_sign,doc_signature_write,doc_template_save,enrich_land,enrich_normalize,external_history_event,external_rows,external_source_declare,external_stub_upsert,external_write_through,external_writes_set,field_history,form_declare,form_submit,home_add,io_comment_write,io_import_begin,io_infer_column,io_outbox_drain,io_restore,migrate_choice_keys,migrate_purge,migrate_reclass,migrate_split,migrate_undo,organization_clear,organization_contents,pipeline_declare,portal_declare,portal_invite,portal_principal_bind,provenance_retention_days,provenance_write,query_across_homes,query_by_coordinates,query_rollup,record_delete,record_reparent,record_resolve,record_restore,record_update,record_write,record_write_many,relation_carry,relation_own,rule_declare,share_grant,sign_request_create,sign_request_sign,subscription_declare,table_declare,value_restore,view_declare,work_approval_decide,work_approval_request,work_template_declare" },
|
|
802
|
+
{ code: "22004", raised_by: "_entity_custom_fields_guard,_value_envelope,actor_word,agg_assert_key,agg_sql,anon_capture,anon_token_issue,anon_write,assert_client_may_reach,booking_declare,capture_submit,checklist_declare,context_resolve,dashboard_block_normalize,dashboard_declare,dashboard_window_sql,doc_render_write,doc_sign,doc_signature_write,doc_template_save,enrich_land,enrich_normalize,external_history_event,external_rows,external_source_declare,external_stub_upsert,external_write_through,external_writes_set,field_history,form_declare,form_submit,home_add,io_comment_write,io_import_begin,io_infer_column,io_outbox_drain,io_restore,migrate_choice_keys,migrate_purge,migrate_reclass,migrate_split,migrate_undo,organization_clear,organization_contents,pipeline_declare,pipeline_gate_preview,portal_declare,portal_invite,portal_principal_bind,provenance_retention_days,provenance_write,query_across_homes,query_by_coordinates,query_rollup,record_delete,record_reparent,record_resolve,record_restore,record_update,record_write,record_write_many,relation_carry,relation_own,rule_declare,share_grant,sign_request_create,sign_request_sign,subscription_declare,table_declare,value_restore,view_declare,work_approval_decide,work_approval_request,work_template_declare" },
|
|
791
803
|
{ code: "22007", raised_by: "dashboard_window_sql" },
|
|
792
804
|
{ code: "22012", raised_by: "rule_eval" },
|
|
793
805
|
{ code: "22023", raised_by: "_booking_availability,_entity_custom_fields_guard,_value_envelope,_work_shape_guard,actor_word,agg_assert_key,agg_sql,anon_token_issue,booking_declare,containment_parent,dashboard_block_normalize,dashboard_window_sql,doc_render_body,doc_render_write,doc_signature_write,enrich_declare,enrich_land,enrich_normalize,enrich_pin,entity_value_write,external_history_event,external_source_declare,external_stub_upsert,external_write_through,field_history,io_export,io_import_begin,io_import_finish,io_import_plan,io_import_report,io_proposal_accept,migrate_merge,migrate_reclass,my_levels,organization_clear,page_size,pin_agent_cells,pipeline_move,portal_declare,provenance_write,query_by_coordinates,query_rollup,record_update,record_write_many,relation_carry,rule_eval,rule_members,share_grant,share_lane_set,sign_request_create,sign_request_sign,subscription_declare,table_rules,visibility_as_of,work_approval_request,work_list,work_slot_hold" },
|
|
794
806
|
{ code: "23503", raised_by: "_booking_availability,_checklist_instantiate,_containment_guard,_field_document_for,_pipeline_stage_key,_record_rule_uses,agg_digest_assemble,anon_publish,anon_rate_take,anon_token_issue,anon_write,assert_organization_wall,booking_cancel,booking_confirm,booking_declare,booking_hold,booking_reschedule,capture_publish,checklist_declare,checklist_steps_table,comment_write,dashboard_declare,delete_rule,doc_sign,doc_template_save,enrich_declare,enrich_due,enrich_land,form_declare,form_submit,home_add,inbound_declare,inbound_mail_land,inbound_set,io_comment_write,io_import_begin,io_import_finish,io_import_report,io_import_rows,io_proposal_accept,migrate_demote,migrate_promote,pipeline_board,pipeline_declare,pipeline_move,pipeline_read,pipeline_transition_refusal,promote_field,promote_table,record_applicability,record_reparent,relation_carry,relation_own,resolve_first_match,rule_applies,rule_declare,rule_eval,rule_members,rule_run,sign_request_create,subscription_mute,subscription_preview,view_declare,work_set_state,work_take_assignment,work_template_instantiate" },
|
|
795
807
|
{ code: "23505", raised_by: "_unique_rule_holds,doc_sign,doc_signature_write,entity_field_declare,field_declare,home_add,inbound_declare,io_proposal_accept,relation_carry,relation_own,share_grant,sign_request_cancel,sign_request_create,work_approval_decide,work_slot_hold" },
|
|
796
|
-
{ code: "23514", raised_by: "_checklist_instantiate,_checklist_step_guard,_containment_guard,_dated_values_guard,_derived_fields,_entity_custom_fields_guard,_field_class_guard,_field_document_for,_field_shape_guard,_field_type_parity_guard,_merge_field_shape_guard,_merge_field_temporal_guard,_promoted_field_cap_guard,_record_rule_uses,_resolve_choice_words,_rule_shape_guard,_rule_topology_guard,_store_relation_edge_names_its_field,_table_shape_guard,_value_envelope,_work_shape_guard,_workdoors_approval_guard,assert_entity_is_organization_scoped,capture_publish,capture_sheet_declare,checklist_declare,checklist_step_complete,doc_sign,doc_signature_write,doc_template_save,entity_field_declare,entity_field_retire,entity_field_update,entity_records_find,entity_table,field_declare,field_retire,field_update,home_add,io_import_rows,migrate_merge,relation_carry,relation_own,sign_request_create,sign_request_sign,table_declare,validate_value_envelope,validate_values,work_set_state,work_slots_declare,work_take_assignment,work_template_instantiate" },
|
|
808
|
+
{ code: "23514", raised_by: "_checklist_instantiate,_checklist_step_guard,_claimed_column_guard,_containment_guard,_dated_values_guard,_derived_fields,_entity_custom_fields_guard,_field_class_guard,_field_document_for,_field_shape_guard,_field_type_parity_guard,_merge_field_shape_guard,_merge_field_temporal_guard,_promoted_field_cap_guard,_record_rule_uses,_resolve_choice_words,_rule_shape_guard,_rule_topology_guard,_store_relation_edge_names_its_field,_table_columns_word_guard,_table_shape_guard,_undeclared_key_guard,_value_envelope,_work_shape_guard,_workdoors_approval_guard,assert_entity_is_organization_scoped,capture_publish,capture_sheet_declare,checklist_declare,checklist_step_complete,doc_sign,doc_signature_write,doc_template_save,entity_field_declare,entity_field_retire,entity_field_update,entity_records_find,entity_table,field_declare,field_retire,field_update,home_add,io_import_rows,migrate_merge,relation_carry,relation_own,sign_request_create,sign_request_sign,table_declare,validate_value_envelope,validate_values,work_set_state,work_slots_declare,work_take_assignment,work_template_instantiate" },
|
|
797
809
|
{ code: "40001", raised_by: "has_visibility_at" },
|
|
798
810
|
{ code: "42501", raised_by: "_doc_render_immutable,_doc_signature_immutable,_field_definition_write,_field_write_door,_rule_definition_write,_store_door,anon_capture,anon_inbound_land,anon_publish,anon_token_issue,anon_token_verify,anon_write,assert_client_may_change,assert_client_may_open,assert_client_may_reach,assert_may_know_table,assert_organization_admin,assert_store_door,booking_confirm,booking_declare,booking_hold,capture_submit,checklist_run,comment_write,conversation_scope_bind,conversation_scope_unbind,enrich_declare,enrich_due,enrich_land,enrich_normalize,entity_field_declare,entity_field_retire,entity_field_update,entity_value_write,external_write_through,form_declare,form_submit,inbound_mail_land,io_comment_resolve,io_comment_write,io_import_begin,io_import_finish,io_restore,migrate_purge,migrate_reclass,my_levels,organization_clear,portal_declare,portal_invitation,portal_invite,portal_principal_bind,promote_table,query_visibility_parity,read_record,read_records,record_table,share_grant,subscription_mute,subscription_preview,visibility_as_of,work_approval_decide,work_approval_read,work_approval_request,work_person" },
|
|
799
811
|
{ code: "42703", raised_by: "entity_table,portal_declare" },
|
|
800
812
|
{ code: "53400", raised_by: "anon_rate_take,delete_cascade_closure,enrich_due,enrich_land,promote_field" },
|
|
801
813
|
{ code: "54001", raised_by: "record_delete" },
|
|
802
|
-
{ code: "PT409", raised_by: "record_update" }
|
|
814
|
+
{ code: "PT409", raised_by: "record_update" },
|
|
815
|
+
{ code: "PT428", raised_by: "_record_rule_uses" }
|
|
803
816
|
];
|
|
804
817
|
var ENTITY_TOKENS = [
|
|
805
818
|
"access_delta_probe",
|
|
@@ -1463,6 +1476,7 @@ var ENTITY_TOKENS = [
|
|
|
1463
1476
|
"plan_node_artifact",
|
|
1464
1477
|
"plan_node_step",
|
|
1465
1478
|
"plan_profile",
|
|
1479
|
+
"platform_action_request",
|
|
1466
1480
|
"platform_actor_session",
|
|
1467
1481
|
"platform_actor_token",
|
|
1468
1482
|
"platform_actor_token_event",
|
|
@@ -1964,6 +1978,14 @@ var DOORS = {
|
|
|
1964
1978
|
pipelineTransitionRefusal: "pipeline_transition_refusal",
|
|
1965
1979
|
pipelineMove: "pipeline_move",
|
|
1966
1980
|
tableStageField: "table_stage_field",
|
|
1981
|
+
// STAGE-RULES. A gate can refuse or it can hand the change to the approvals queue; the
|
|
1982
|
+
// closed list is the store's, the knob is the organization's, and what is WAITING on a
|
|
1983
|
+
// card has to be askable or a card that did not move looks like a card nobody dragged.
|
|
1984
|
+
stageRuleOnFailKinds: "stage_rule_on_fail_kinds",
|
|
1985
|
+
stageRuleEnforcement: "stage_rule_enforcement",
|
|
1986
|
+
recordStagePending: "record_stage_pending",
|
|
1987
|
+
pipelinePending: "pipeline_pending",
|
|
1988
|
+
pipelineGatePreview: "pipeline_gate_preview",
|
|
1967
1989
|
ruleMembers: "rule_members",
|
|
1968
1990
|
ruleMembership: "rule_membership",
|
|
1969
1991
|
ruleRun: "rule_run",
|
|
@@ -1985,6 +2007,10 @@ var DOORS = {
|
|
|
1985
2007
|
// VISITOR's three (`booking_public`, `booking_hold`, `booking_confirm`) are
|
|
1986
2008
|
// deliberately absent: they are server-lane and a browser never calls them.
|
|
1987
2009
|
bookings: "bookings",
|
|
2010
|
+
// The OWNER's side of a booking page, and the door that had no client method at
|
|
2011
|
+
// all until 2026-09-21: without it the only way to get a booking page was to ask
|
|
2012
|
+
// an agent, which made the agent the ONLY path rather than the faster one.
|
|
2013
|
+
bookingDeclare: "booking_declare",
|
|
1988
2014
|
// PRODUCTS row 9 — "pull my spreadsheet in". W4-IO built `io_import_open` and
|
|
1989
2015
|
// `io_import_rows`; lane IMPORT gave a run an IDENTITY (the file's sha-256, so
|
|
1990
2016
|
// a re-import doubles nothing), a duplicate key, a policy, per-row outcomes
|
|
@@ -2117,6 +2143,13 @@ var DOORS = {
|
|
|
2117
2143
|
// the summary it would send right now without sending it.
|
|
2118
2144
|
subscriptionDeclare: "subscription_declare",
|
|
2119
2145
|
subscriptionPreview: "subscription_preview",
|
|
2146
|
+
// A SUBSCRIPTION IS OVER A SAVED VIEW, so a person who has never saved one has
|
|
2147
|
+
// nothing to subscribe to. These two are the saved-view pair (lane DIGESTS'
|
|
2148
|
+
// `digests_a_saved_view_has_a_door.sql`), unreachable from this client until
|
|
2149
|
+
// 2026-09-21: `views` lists this Table's, `viewDeclare` writes one. A LIST IS A
|
|
2150
|
+
// DOOR, never a grant on `platform.saved_view` behind it.
|
|
2151
|
+
views: "views",
|
|
2152
|
+
viewDeclare: "view_declare",
|
|
2120
2153
|
// The cadence CATALOGUE a person's screen may ask for. `agg_subscription_cadences`
|
|
2121
2154
|
// above is the notifier's own and holds no client grant; this door delegates to
|
|
2122
2155
|
// it, so a picker and the digest runner can never offer different words.
|
|
@@ -2282,7 +2315,17 @@ var BY_SQLSTATE = {
|
|
|
2282
2315
|
// the grants not copied, land here.
|
|
2283
2316
|
PGRST202: "store_not_served",
|
|
2284
2317
|
PGRST205: "store_not_served",
|
|
2285
|
-
PGRST301: "door"
|
|
2318
|
+
PGRST301: "door",
|
|
2319
|
+
// PT428 — NOT A FAILURE, and the release gate's live census is what found it
|
|
2320
|
+
// missing: the store raises it and this package answered `internal`, which is
|
|
2321
|
+
// the one classification that tells a screen nothing. A stage gate whose
|
|
2322
|
+
// `on_fail` is `require_approval` files the request and leaves the record
|
|
2323
|
+
// where it was; the transaction is rolled back to the pipeline's own block, so
|
|
2324
|
+
// "nothing was written" is a fact rather than a promise. Landed by lane
|
|
2325
|
+
// STAGE-RULES; mapped here by STAGE-RULES-2 the day after, when the census
|
|
2326
|
+
// caught it — the sixth time that census has been the thing that found a
|
|
2327
|
+
// refusal class rather than a person guessing one.
|
|
2328
|
+
PT428: "needs_approval"
|
|
2286
2329
|
};
|
|
2287
2330
|
var MAPPED_SQLSTATES = Object.keys(BY_SQLSTATE);
|
|
2288
2331
|
function parseDetail(details) {
|
|
@@ -2461,16 +2504,17 @@ function createRecordsClient(config) {
|
|
|
2461
2504
|
if (!door.ok) return err(door.error);
|
|
2462
2505
|
const { document, hidden } = unfold(door.data);
|
|
2463
2506
|
let computed = [];
|
|
2507
|
+
let computedUnavailable = null;
|
|
2464
2508
|
if (withComputed) {
|
|
2465
2509
|
const provenance = await callDoor(
|
|
2466
2510
|
DOORS.computedProvenance,
|
|
2467
2511
|
{ p_organization_id: org, p_record_id: record_id },
|
|
2468
2512
|
"recordRead.computed"
|
|
2469
2513
|
);
|
|
2470
|
-
if (
|
|
2471
|
-
|
|
2514
|
+
if (provenance.ok) computed = provenance.data ?? [];
|
|
2515
|
+
else computedUnavailable = provenance.error;
|
|
2472
2516
|
}
|
|
2473
|
-
return ok({ record_id, document, hidden, computed });
|
|
2517
|
+
return ok({ record_id, document, hidden, computed, computedUnavailable });
|
|
2474
2518
|
},
|
|
2475
2519
|
async list({ table_id, limit = 50, offset = 0 }) {
|
|
2476
2520
|
const door = await callDoor(
|
|
@@ -2809,6 +2853,41 @@ function createRecordsClient(config) {
|
|
|
2809
2853
|
"tableStageField"
|
|
2810
2854
|
);
|
|
2811
2855
|
},
|
|
2856
|
+
async stageRuleOnFailKinds() {
|
|
2857
|
+
return callDoor(
|
|
2858
|
+
DOORS.stageRuleOnFailKinds,
|
|
2859
|
+
{},
|
|
2860
|
+
"stageRuleOnFailKinds"
|
|
2861
|
+
);
|
|
2862
|
+
},
|
|
2863
|
+
async stageRuleEnforcement() {
|
|
2864
|
+
return callDoor(
|
|
2865
|
+
DOORS.stageRuleEnforcement,
|
|
2866
|
+
{ p_organization_id: org },
|
|
2867
|
+
"stageRuleEnforcement"
|
|
2868
|
+
);
|
|
2869
|
+
},
|
|
2870
|
+
async recordStagePending({ record_id }) {
|
|
2871
|
+
return callDoor(
|
|
2872
|
+
DOORS.recordStagePending,
|
|
2873
|
+
{ p_organization_id: org, p_record_id: record_id },
|
|
2874
|
+
"recordStagePending"
|
|
2875
|
+
);
|
|
2876
|
+
},
|
|
2877
|
+
async pipelinePending({ table_id }) {
|
|
2878
|
+
return callDoor(
|
|
2879
|
+
DOORS.pipelinePending,
|
|
2880
|
+
{ p_organization_id: org, p_table_id: table_id },
|
|
2881
|
+
"pipelinePending"
|
|
2882
|
+
);
|
|
2883
|
+
},
|
|
2884
|
+
async pipelineGatePreview({ table_id, stage, gate }) {
|
|
2885
|
+
return callDoor(
|
|
2886
|
+
DOORS.pipelineGatePreview,
|
|
2887
|
+
{ p_organization_id: org, p_table_id: table_id, p_stage: stage, p_gate: gate },
|
|
2888
|
+
"pipelineGatePreview"
|
|
2889
|
+
);
|
|
2890
|
+
},
|
|
2812
2891
|
async ruleMembers({ rule_id }) {
|
|
2813
2892
|
return callDoor(
|
|
2814
2893
|
DOORS.ruleMembers,
|
|
@@ -2837,6 +2916,30 @@ function createRecordsClient(config) {
|
|
|
2837
2916
|
"bookings"
|
|
2838
2917
|
);
|
|
2839
2918
|
},
|
|
2919
|
+
async bookingDeclare(args) {
|
|
2920
|
+
return callDoor(
|
|
2921
|
+
DOORS.bookingDeclare,
|
|
2922
|
+
{
|
|
2923
|
+
p_organization_id: org,
|
|
2924
|
+
p_table_id: args.table_id,
|
|
2925
|
+
p_title: args.title,
|
|
2926
|
+
p_questions: args.questions,
|
|
2927
|
+
// AN EMPTY OBJECT IS NOT A MISTAKE. The store owns every default, so a
|
|
2928
|
+
// page declared with no availability comes back Monday-to-Friday,
|
|
2929
|
+
// nine-to-five, in the organization's own zone — and the screen draws
|
|
2930
|
+
// what came BACK rather than what it sent.
|
|
2931
|
+
p_availability: args.availability ?? {},
|
|
2932
|
+
p_presentation: args.presentation ?? {},
|
|
2933
|
+
p_submission_cap: args.submission_cap ?? null,
|
|
2934
|
+
p_quarantine_rule_id: args.quarantine_rule_id ?? null,
|
|
2935
|
+
p_notify_rule_id: args.notify_rule_id ?? null,
|
|
2936
|
+
p_form_id: args.form_id ?? null,
|
|
2937
|
+
p_slug: args.slug ?? null,
|
|
2938
|
+
p_home_id: args.home_id ?? null
|
|
2939
|
+
},
|
|
2940
|
+
"bookingDeclare"
|
|
2941
|
+
);
|
|
2942
|
+
},
|
|
2840
2943
|
async formDeclare(args) {
|
|
2841
2944
|
return callDoor(
|
|
2842
2945
|
DOORS.formDeclare,
|
|
@@ -3261,6 +3364,20 @@ function createRecordsClient(config) {
|
|
|
3261
3364
|
"subscriptionPreview"
|
|
3262
3365
|
);
|
|
3263
3366
|
},
|
|
3367
|
+
async views(args) {
|
|
3368
|
+
return callDoor(
|
|
3369
|
+
DOORS.views,
|
|
3370
|
+
{ p_organization_id: org, p_table_id: args?.table_id ?? null },
|
|
3371
|
+
"views"
|
|
3372
|
+
);
|
|
3373
|
+
},
|
|
3374
|
+
async viewDeclare({ table_id, spec }) {
|
|
3375
|
+
return callDoor(
|
|
3376
|
+
DOORS.viewDeclare,
|
|
3377
|
+
{ p_organization_id: org, p_table_id: table_id, p_spec: spec },
|
|
3378
|
+
"viewDeclare"
|
|
3379
|
+
);
|
|
3380
|
+
},
|
|
3264
3381
|
async subscriptionMute({ rule_id, muted }) {
|
|
3265
3382
|
return callDoor(
|
|
3266
3383
|
DOORS.subscriptionMute,
|
|
@@ -4490,6 +4607,8 @@ function looksLikeAnId(value) {
|
|
|
4490
4607
|
|
|
4491
4608
|
// src/pipeline.ts
|
|
4492
4609
|
var PIPELINE_RULE_KINDS = ["moves", "requires", "who", "limit", "entry"];
|
|
4610
|
+
var STAGE_RULE_ON_FAIL = ["refuse", "require_approval"];
|
|
4611
|
+
var STAGE_RULE_ENFORCEMENT = ["refuse", "warn"];
|
|
4493
4612
|
function mayDrag(level) {
|
|
4494
4613
|
return level === "editor" || level === "admin" || level === "owner";
|
|
4495
4614
|
}
|