@ai-matrx/records 0.51.0 → 0.53.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 +69 -0
- package/dist/core/index.cjs +112 -3
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +95 -9
- package/dist/core/index.d.ts +95 -9
- package/dist/core/index.js +112 -3
- package/dist/core/index.js.map +1 -1
- package/dist/{field-C6_QKP1G.d.cts → field-ddMymGEI.d.cts} +28 -3
- package/dist/{field-C6_QKP1G.d.ts → field-ddMymGEI.d.ts} +28 -3
- package/dist/index.cjs +33 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +129 -3
- package/dist/index.d.ts +129 -3
- package/dist/index.js +33 -3
- package/dist/index.js.map +1 -1
- package/dist/react/index.cjs +192 -3
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +302 -8
- package/dist/react/index.d.ts +302 -8
- package/dist/react/index.js +192 -3
- package/dist/react/index.js.map +1 -1
- 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.map +1 -1
- package/package.json +1 -1
package/dist/core/index.js
CHANGED
|
@@ -387,6 +387,24 @@ function publicFormPath(formId) {
|
|
|
387
387
|
function portalPath(slug) {
|
|
388
388
|
return `/portal/c/${slug}`;
|
|
389
389
|
}
|
|
390
|
+
var PORTAL_ARCHIVE_FILTERS = ["active", "archived", "all"];
|
|
391
|
+
var DEFAULT_PORTAL_ARCHIVE_FILTER = "active";
|
|
392
|
+
function isPortalArchiveFilter(word) {
|
|
393
|
+
return typeof word === "string" && PORTAL_ARCHIVE_FILTERS.includes(word);
|
|
394
|
+
}
|
|
395
|
+
function portalArchiveConsequence(title, signedIn, invited) {
|
|
396
|
+
const people = invited === 0 ? "Nobody is invited to it" : signedIn === 0 ? `The ${invited} ${invited === 1 ? "person" : "people"} invited to it will not be able to sign in` : `The ${signedIn} ${signedIn === 1 ? "person" : "people"} signed in to it, and the ${invited - signedIn} still invited, will not be able to sign in`;
|
|
397
|
+
return `\u201C${title}\u201D will leave your portal list. ${people}, and their invitation links will say this portal was archived and can be restored. Nothing is deleted \u2014 every Table it shows and everyone invited to it is kept exactly as it is, and you can restore it at any time.`;
|
|
398
|
+
}
|
|
399
|
+
function portalConfirmLine(title) {
|
|
400
|
+
return `Type the portal\u2019s title \u2014 ${title} \u2014 to confirm you mean this one.`;
|
|
401
|
+
}
|
|
402
|
+
function portalTitleTypedBack(typed, title) {
|
|
403
|
+
return typed.trim() === (title ?? "").trim();
|
|
404
|
+
}
|
|
405
|
+
function emptyPortalArchiveLine() {
|
|
406
|
+
return "No portal of this organization has been archived. A portal you put away waits here until somebody restores it, and nothing is ever destroyed.";
|
|
407
|
+
}
|
|
390
408
|
|
|
391
409
|
// src/aggregate.ts
|
|
392
410
|
function measureKey(measure) {
|
|
@@ -1062,6 +1080,7 @@ var STORE_DOORS = [
|
|
|
1062
1080
|
{ name: "io_export", args: "p_organization_id uuid, p_table_id uuid, p_columns text[] DEFAULT NULL::text[], p_limit integer DEFAULT 10000, p_required text DEFAULT 'viewer'::text", returns: "jsonb", security: "definer" },
|
|
1063
1081
|
{ name: "io_export_csv", args: "p_organization_id uuid, p_table_id uuid, p_columns text[] DEFAULT NULL::text[], p_limit integer DEFAULT 10000, p_delimiter text DEFAULT chr(44), p_required text DEFAULT 'viewer'::text", returns: "text", security: "definer" },
|
|
1064
1082
|
{ name: "io_import_begin", args: "p_organization_id uuid, p_table_id uuid, p_format text DEFAULT 'csv'::text, p_source_name text DEFAULT NULL::text, p_source_columns jsonb DEFAULT '[]'::jsonb, p_file_hash text DEFAULT NULL::text, p_policy jsonb DEFAULT '{}'::jsonb, p_dedupe_key text DEFAULT NULL::text, p_file_bytes bigint DEFAULT NULL::bigint, p_force boolean DEFAULT false", returns: "jsonb", security: "definer" },
|
|
1083
|
+
{ name: "io_import_declare_columns", args: "p_organization_id uuid, p_table_id uuid, p_rows jsonb, p_mapping jsonb DEFAULT '{}'::jsonb", returns: "jsonb", security: "definer" },
|
|
1065
1084
|
{ name: "io_import_finish", args: "p_organization_id uuid, p_import_id uuid, p_unmapped text DEFAULT NULL::text", returns: "jsonb", security: "definer" },
|
|
1066
1085
|
{ name: "io_import_forget", args: "p_organization_id uuid, p_import_id uuid", returns: "boolean", security: "definer" },
|
|
1067
1086
|
{ name: "io_import_open", args: "p_organization_id uuid, p_table_id uuid, p_format text DEFAULT 'csv'::text, p_source_name text DEFAULT NULL::text, p_source_columns jsonb DEFAULT '[]'::jsonb", returns: "uuid", security: "definer" },
|
|
@@ -1095,6 +1114,7 @@ var STORE_DOORS = [
|
|
|
1095
1114
|
{ name: "levels_raised_by_a_less_specific_rung", args: "", returns: "TABLE(organization_id uuid, organization_name text, member_id uuid, member_email text, record_id uuid, addressed_level permission_level, answered_level permission_level)", security: "definer" },
|
|
1096
1115
|
{ name: "list_door_disagreements", args: "p_pretend text DEFAULT NULL::text, p_only_organization uuid DEFAULT NULL::uuid, p_sample integer DEFAULT 200", returns: "TABLE(organization_id uuid, organization_name text, member_id uuid, table_id uuid, record_id uuid, door text, why text)", security: "invoker" },
|
|
1097
1116
|
{ name: "list_door_disagreements", args: "p_pretend text, p_only_organization uuid, p_sample integer, p_exhaustive boolean", returns: "TABLE(organization_id uuid, organization_name text, member_id uuid, table_id uuid, record_id uuid, door text, why text)", security: "invoker" },
|
|
1117
|
+
{ name: "list_portals", args: "p_organization_id uuid, p_archived text DEFAULT 'active'::text", returns: "TABLE(portal_id uuid, title text, slug text, client_table_id uuid, client_table text, is_active boolean, tables integer, invited integer, signed_in integer, sign_in_method text, opened_at timestamp with time zone)", security: "definer" },
|
|
1098
1118
|
{ name: "lookup_value", args: "p_organization_id uuid, p_record_id uuid, p_field_data jsonb", returns: "jsonb", security: "invoker" },
|
|
1099
1119
|
{ name: "mask_document", args: "p_document jsonb, p_visible_keys text[], p_notices jsonb, p_by_id boolean DEFAULT false, p_key_ids jsonb DEFAULT '{}'::jsonb", returns: "jsonb", security: "invoker" },
|
|
1100
1120
|
{ name: "mask_document", args: "p_document jsonb, p_visible_keys text[], p_notices jsonb, p_by_id boolean DEFAULT false, p_key_ids jsonb DEFAULT '{}'::jsonb, p_declared_keys text[] DEFAULT NULL::text[]", returns: "jsonb", security: "invoker" },
|
|
@@ -1144,6 +1164,7 @@ var STORE_DOORS = [
|
|
|
1144
1164
|
{ name: "pipeline_read", args: "p_organization_id uuid, p_table_id uuid", returns: "jsonb", security: "definer" },
|
|
1145
1165
|
{ name: "pipeline_transition_refusal", args: "p_organization_id uuid, p_record_id uuid, p_to text", returns: "jsonb", security: "definer" },
|
|
1146
1166
|
{ name: "portal_admits", args: "p_organization_id uuid, p_user_id uuid DEFAULT NULL::uuid", returns: "boolean", security: "definer" },
|
|
1167
|
+
{ name: "portal_archive", args: "p_organization_id uuid, p_portal_id uuid, p_confirm_title text, p_reason text DEFAULT NULL::text", returns: "jsonb", security: "definer" },
|
|
1147
1168
|
{ name: "portal_card", args: "p_organization_id uuid, p_portal_id uuid", returns: "jsonb", security: "definer" },
|
|
1148
1169
|
{ name: "portal_declare", args: "p_organization_id uuid, p_title text, p_client_table_id uuid, p_tables jsonb, p_portal_id uuid DEFAULT NULL::uuid, p_slug text DEFAULT NULL::text, p_sign_in_method text DEFAULT 'magic_link'::text", returns: "uuid", security: "definer" },
|
|
1149
1170
|
{ name: "portal_field_map", args: "p_organization_id uuid, p_table_id uuid", returns: "TABLE(field_id uuid, field_key text, field_type text, points_at uuid)", security: "definer" },
|
|
@@ -1155,6 +1176,7 @@ var STORE_DOORS = [
|
|
|
1155
1176
|
{ name: "portal_principal_bind", args: "p_organization_id uuid, p_principal_id uuid, p_user_id uuid", returns: "jsonb", security: "definer" },
|
|
1156
1177
|
{ name: "portal_public", args: "p_slug text", returns: "jsonb", security: "definer" },
|
|
1157
1178
|
{ name: "portal_record_title", args: "p_organization_id uuid, p_record_id uuid", returns: "text", security: "definer" },
|
|
1179
|
+
{ name: "portal_restore", args: "p_organization_id uuid, p_portal_id uuid, p_confirm_title text", returns: "jsonb", security: "definer" },
|
|
1158
1180
|
{ name: "portal_revoke", args: "p_organization_id uuid, p_portal_id uuid, p_principal_id uuid", returns: "jsonb", security: "definer" },
|
|
1159
1181
|
{ name: "portal_slug", args: "p_organization_id uuid, p_title text, p_portal_id uuid DEFAULT NULL::uuid", returns: "text", security: "definer" },
|
|
1160
1182
|
{ name: "portal_tables", args: "p_organization_id uuid", returns: "TABLE(portal_id uuid, table_id uuid, name text)", security: "definer" },
|
|
@@ -1297,6 +1319,7 @@ var STORE_DOORS = [
|
|
|
1297
1319
|
{ 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" },
|
|
1298
1320
|
{ name: "storage_modes", args: "", returns: "text[]", security: "invoker" },
|
|
1299
1321
|
{ name: "store_is_open", args: "p_organization_id uuid DEFAULT NULL::uuid", returns: "boolean", security: "invoker" },
|
|
1322
|
+
{ name: "store_off_sentence", args: "p_organization_id uuid", returns: "text", security: "invoker" },
|
|
1300
1323
|
{ name: "subscription_cadences", args: "p_organization_id uuid", returns: "text[]", security: "definer" },
|
|
1301
1324
|
{ name: "subscription_declare", args: "p_organization_id uuid, p_table_id uuid, p_spec jsonb", returns: "uuid", security: "definer" },
|
|
1302
1325
|
{ name: "subscription_mute", args: "p_organization_id uuid, p_rule_id uuid, p_muted boolean DEFAULT true", returns: "boolean", security: "definer" },
|
|
@@ -1435,16 +1458,16 @@ var STORE_KNOBS = [
|
|
|
1435
1458
|
{ key: "world_publish_enabled", value: "false", type: "boolean" }
|
|
1436
1459
|
];
|
|
1437
1460
|
var STORE_REFUSAL_CODES = [
|
|
1438
|
-
{ code: "02000", raised_by: "_checklist_instantiate,_portal_invite_payload,_share_write_person,_table_share_invite_payload,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_invite_accept,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,table_archive,table_share_outside_accept,table_share_outside_invite,table_share_outside_resend,table_share_outside_revoke,visibility_as_of,work_approval_decide,work_approval_read,work_approval_request,work_assign,work_record_states,work_set_state" },
|
|
1461
|
+
{ code: "02000", raised_by: "_checklist_instantiate,_portal_invite_payload,_share_write_person,_table_share_invite_payload,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_archive,portal_card,portal_declare,portal_invite,portal_invite_accept,portal_preview,portal_principal_bind,portal_restore,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,table_archive,table_share_outside_accept,table_share_outside_invite,table_share_outside_resend,table_share_outside_revoke,visibility_as_of,work_approval_decide,work_approval_read,work_approval_request,work_assign,work_record_states,work_set_state" },
|
|
1439
1462
|
{ 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" },
|
|
1440
1463
|
{ code: "22003", raised_by: "context_resolve" },
|
|
1441
1464
|
{ code: "22004", raised_by: "_entity_custom_fields_guard,_share_write_person,_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_archive,table_declare,table_share_outside_invite,value_restore,view_declare,work_approval_decide,work_approval_request,work_template_declare" },
|
|
1442
1465
|
{ code: "22007", raised_by: "dashboard_window_sql" },
|
|
1443
1466
|
{ code: "22012", raised_by: "rule_eval" },
|
|
1444
|
-
{ code: "22023", raised_by: "_booking_availability,_entity_custom_fields_guard,_take_op_id,_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,field_update,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,read_records_archived,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" },
|
|
1467
|
+
{ code: "22023", raised_by: "_booking_availability,_entity_custom_fields_guard,_take_op_id,_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,field_update,io_export,io_import_begin,io_import_finish,io_import_plan,io_import_report,io_proposal_accept,list_portals,migrate_merge,migrate_reclass,my_levels,organization_clear,page_size,pin_agent_cells,pipeline_move,portal_declare,provenance_write,query_by_coordinates,query_rollup,read_records_archived,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" },
|
|
1445
1468
|
{ code: "23503", raised_by: "_booking_availability,_checklist_instantiate,_containment_guard,_display_spec_for,_field_document_for,_field_type_parity_guard,_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" },
|
|
1446
1469
|
{ code: "23505", raised_by: "_share_write_person,_unique_rule_holds,doc_sign,doc_signature_write,entity_field_declare,field_declare,home_add,inbound_declare,io_proposal_accept,relation_carry,relation_own,sign_request_cancel,sign_request_create,table_share_outside_resend,work_approval_decide,work_slot_hold" },
|
|
1447
|
-
{ code: "23514", raised_by: "_checklist_instantiate,_checklist_step_guard,_containment_guard,_dated_values_guard,_derived_fields,_display_spec_for,_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,_with_display,_work_shape_guard,_workdoors_approval_guard,assert_columns_are_defined,assert_entity_is_organization_scoped,booking_declare,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_comment_write,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" },
|
|
1470
|
+
{ code: "23514", raised_by: "_checklist_instantiate,_checklist_step_guard,_containment_guard,_dated_values_guard,_derived_fields,_display_spec_for,_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,_with_display,_work_shape_guard,_workdoors_approval_guard,assert_columns_are_defined,assert_entity_is_organization_scoped,booking_declare,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_comment_write,io_import_rows,migrate_merge,portal_archive,portal_restore,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" },
|
|
1448
1471
|
{ code: "40001", raised_by: "has_visibility_at" },
|
|
1449
1472
|
{ code: "42501", raised_by: "_doc_render_immutable,_doc_signature_immutable,_field_definition_write,_field_write_door,_rule_definition_write,_store_door,agent_table_claim,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,doc_sign,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_invite_accept,portal_principal_bind,promote_table,query_visibility_parity,read_record,read_records,read_records_archived,read_records_by_ids,read_records_matching,record_table,share_grant,subscription_mute,subscription_preview,table_share_outside_accept,table_share_outside_invite,table_share_outside_resend,visibility_as_of,work_approval_decide,work_approval_read,work_approval_request,work_person" },
|
|
1450
1473
|
{ code: "42703", raised_by: "entity_table,portal_declare" },
|
|
@@ -2579,6 +2602,19 @@ var DOORS = {
|
|
|
2579
2602
|
fieldOptions: "field_options",
|
|
2580
2603
|
parityValues: "parity_values",
|
|
2581
2604
|
tableDeclare: "table_declare",
|
|
2605
|
+
// GETTING RID OF A TABLE — which is a JOB, NOT A STATEMENT (VERIFIER-11 F3).
|
|
2606
|
+
// `record_delete` above is the store's one soft-delete door and it is right
|
|
2607
|
+
// for a record; aimed at a TABLE it recurses through everything the Table
|
|
2608
|
+
// contains inside one transaction, and that is unbounded by construction. A
|
|
2609
|
+
// person pressing "Delete this table" on 1,430 records the product itself
|
|
2610
|
+
// had just imported waited twelve seconds and was told `57014`, "canceling
|
|
2611
|
+
// statement due to statement timeout … Nothing was changed. Try a smaller
|
|
2612
|
+
// page" — advice that means nothing when what you are doing is getting rid
|
|
2613
|
+
// of a table. `custom.table_archive` does the same work in passes and
|
|
2614
|
+
// answers each one with numbers, so a screen shows a sentence and a count
|
|
2615
|
+
// instead of a spinner and an SQLSTATE. It is STATELESS, so a run cut in
|
|
2616
|
+
// half resumes exactly where it stopped: there is no job row to lose.
|
|
2617
|
+
tableArchive: "table_archive",
|
|
2582
2618
|
// ADDING A COLUMN — the first thing anybody does with a table, and until
|
|
2583
2619
|
// 2026-09-19 there was no door for it. A Field is a record (REC-25), so a
|
|
2584
2620
|
// screen wrote one with `record_write`; that door writes ONE row with
|
|
@@ -2706,6 +2742,7 @@ var DOORS = {
|
|
|
2706
2742
|
// ways to start an import from one client is how they drift.
|
|
2707
2743
|
importPlan: "io_import_plan",
|
|
2708
2744
|
importBegin: "io_import_begin",
|
|
2745
|
+
importDeclareColumns: "io_import_declare_columns",
|
|
2709
2746
|
importRows: "io_import_rows",
|
|
2710
2747
|
importFinish: "io_import_finish",
|
|
2711
2748
|
importReport: "io_import_report",
|
|
@@ -2742,6 +2779,17 @@ var DOORS = {
|
|
|
2742
2779
|
portalInvite: "portal_invite",
|
|
2743
2780
|
portalRevoke: "portal_revoke",
|
|
2744
2781
|
portalPreview: "portal_preview",
|
|
2782
|
+
// ORG-CLEANUP, 2026-09-22 — A PORTAL IS ARCHIVED, NEVER DELETED.
|
|
2783
|
+
// `portals` keeps its signature and HIDES archived portals (the law's default
|
|
2784
|
+
// is to hide); `list_portals(org, 'active'|'archived'|'all')` is the
|
|
2785
|
+
// archive-aware reader, taking the platform archive filter's own three values
|
|
2786
|
+
// so one door serves both lanes and no screen has to invent a second control.
|
|
2787
|
+
// `portal_archive` / `portal_restore` are the way out and the way back; both
|
|
2788
|
+
// take the portal's own title typed back, because ten portals can carry one
|
|
2789
|
+
// title and the title alone is not what picks this one.
|
|
2790
|
+
listPortals: "list_portals",
|
|
2791
|
+
portalArchive: "portal_archive",
|
|
2792
|
+
portalRestore: "portal_restore",
|
|
2745
2793
|
// SCR-16 — the canvas. A dashboard is a record in the presentation kernel
|
|
2746
2794
|
// whose blocks are saved SPECS for the eighth verb; `dashboardRun` walks them
|
|
2747
2795
|
// under the CALLER'S principal, so nothing here is precomputed and nothing is
|
|
@@ -3230,6 +3278,18 @@ function createRecordsClient(config) {
|
|
|
3230
3278
|
"recordRestore"
|
|
3231
3279
|
);
|
|
3232
3280
|
},
|
|
3281
|
+
async tableArchive({ table_id, chunk, includeTable }) {
|
|
3282
|
+
return callDoor(
|
|
3283
|
+
DOORS.tableArchive,
|
|
3284
|
+
{
|
|
3285
|
+
p_organization_id: org,
|
|
3286
|
+
p_table_id: table_id,
|
|
3287
|
+
p_chunk: chunk ?? 50,
|
|
3288
|
+
p_include_table: includeTable ?? true
|
|
3289
|
+
},
|
|
3290
|
+
"tableArchive"
|
|
3291
|
+
);
|
|
3292
|
+
},
|
|
3233
3293
|
async recordRead({ record_id, withComputed = false }) {
|
|
3234
3294
|
const door = await callDoor(
|
|
3235
3295
|
DOORS.readRecord,
|
|
@@ -3783,6 +3843,18 @@ function createRecordsClient(config) {
|
|
|
3783
3843
|
"importBegin"
|
|
3784
3844
|
);
|
|
3785
3845
|
},
|
|
3846
|
+
async importDeclareColumns(args) {
|
|
3847
|
+
return callDoor(
|
|
3848
|
+
DOORS.importDeclareColumns,
|
|
3849
|
+
{
|
|
3850
|
+
p_organization_id: org,
|
|
3851
|
+
p_table_id: args.table_id,
|
|
3852
|
+
p_rows: args.rows,
|
|
3853
|
+
p_mapping: args.mapping ?? {}
|
|
3854
|
+
},
|
|
3855
|
+
"importDeclareColumns"
|
|
3856
|
+
);
|
|
3857
|
+
},
|
|
3786
3858
|
async importRows(args) {
|
|
3787
3859
|
return callDoor(
|
|
3788
3860
|
DOORS.importRows,
|
|
@@ -3853,6 +3925,36 @@ function createRecordsClient(config) {
|
|
|
3853
3925
|
async portals() {
|
|
3854
3926
|
return callDoor(DOORS.portals, { p_organization_id: org }, "portals");
|
|
3855
3927
|
},
|
|
3928
|
+
async listPortals(args) {
|
|
3929
|
+
return callDoor(
|
|
3930
|
+
DOORS.listPortals,
|
|
3931
|
+
{ p_organization_id: org, p_archived: args?.archived ?? "active" },
|
|
3932
|
+
"listPortals"
|
|
3933
|
+
);
|
|
3934
|
+
},
|
|
3935
|
+
async portalArchive(args) {
|
|
3936
|
+
return callDoor(
|
|
3937
|
+
DOORS.portalArchive,
|
|
3938
|
+
{
|
|
3939
|
+
p_organization_id: org,
|
|
3940
|
+
p_portal_id: args.portal_id,
|
|
3941
|
+
p_confirm_title: args.confirm_title,
|
|
3942
|
+
p_reason: args.reason ?? null
|
|
3943
|
+
},
|
|
3944
|
+
"portalArchive"
|
|
3945
|
+
);
|
|
3946
|
+
},
|
|
3947
|
+
async portalRestore(args) {
|
|
3948
|
+
return callDoor(
|
|
3949
|
+
DOORS.portalRestore,
|
|
3950
|
+
{
|
|
3951
|
+
p_organization_id: org,
|
|
3952
|
+
p_portal_id: args.portal_id,
|
|
3953
|
+
p_confirm_title: args.confirm_title
|
|
3954
|
+
},
|
|
3955
|
+
"portalRestore"
|
|
3956
|
+
);
|
|
3957
|
+
},
|
|
3856
3958
|
async portalTables() {
|
|
3857
3959
|
return callDoor(DOORS.portalTables, { p_organization_id: org }, "portalTables");
|
|
3858
3960
|
},
|
|
@@ -5453,6 +5555,7 @@ export {
|
|
|
5453
5555
|
DEFAULT_ARCHIVE_LANE,
|
|
5454
5556
|
DEFAULT_DOCUMENT_MAX_BYTES,
|
|
5455
5557
|
DEFAULT_PAGE_SIZE,
|
|
5558
|
+
DEFAULT_PORTAL_ARCHIVE_FILTER,
|
|
5456
5559
|
DEFAULT_VALUE_MAX_BYTES,
|
|
5457
5560
|
DELIVERIES,
|
|
5458
5561
|
DOORS,
|
|
@@ -5472,6 +5575,7 @@ export {
|
|
|
5472
5575
|
PERMISSION_LEVELS,
|
|
5473
5576
|
PER_VALUE_ACCESS_WORDS,
|
|
5474
5577
|
PIPELINE_RULE_KINDS,
|
|
5578
|
+
PORTAL_ARCHIVE_FILTERS,
|
|
5475
5579
|
REFUSALS_WORTH_REPEATING,
|
|
5476
5580
|
RELATION_BINDINGS,
|
|
5477
5581
|
RELATION_CARDINALITIES,
|
|
@@ -5508,6 +5612,7 @@ export {
|
|
|
5508
5612
|
doorCensus,
|
|
5509
5613
|
doorExists,
|
|
5510
5614
|
emptyArchiveLine,
|
|
5615
|
+
emptyPortalArchiveLine,
|
|
5511
5616
|
err,
|
|
5512
5617
|
exportCsv,
|
|
5513
5618
|
exportXlsx,
|
|
@@ -5522,6 +5627,7 @@ export {
|
|
|
5522
5627
|
isArchiveLane,
|
|
5523
5628
|
isDecided,
|
|
5524
5629
|
isOwnOp,
|
|
5630
|
+
isPortalArchiveFilter,
|
|
5525
5631
|
isRecordsErr,
|
|
5526
5632
|
isTheChosen,
|
|
5527
5633
|
looksLikeAnId,
|
|
@@ -5537,7 +5643,10 @@ export {
|
|
|
5537
5643
|
optionLabel,
|
|
5538
5644
|
parseCsv,
|
|
5539
5645
|
planQuery,
|
|
5646
|
+
portalArchiveConsequence,
|
|
5647
|
+
portalConfirmLine,
|
|
5540
5648
|
portalPath,
|
|
5649
|
+
portalTitleTypedBack,
|
|
5541
5650
|
predictEnvelopeRefusal,
|
|
5542
5651
|
predictSizeRefusal,
|
|
5543
5652
|
predictValueRefusals,
|