@ai-matrx/records 0.37.0 → 0.40.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 +76 -0
- package/dist/core/index.cjs +8 -2
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +8 -2
- package/dist/core/index.js.map +1 -1
- package/dist/{field-CWBdZfFv.d.cts → field-C5vJ0Kqv.d.cts} +29 -5
- package/dist/{field-CWBdZfFv.d.ts → field-C5vJ0Kqv.d.ts} +29 -5
- package/dist/index.cjs +6 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/react/index.cjs +62 -10
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +35 -6
- package/dist/react/index.d.ts +35 -6
- package/dist/react/index.js +63 -11
- package/dist/react/index.js.map +1 -1
- package/dist/use-cases/index.cjs.map +1 -1
- package/dist/use-cases/index.d.cts +6 -4
- package/dist/use-cases/index.d.ts +6 -4
- package/dist/use-cases/index.js.map +1 -1
- package/package.json +1 -1
package/dist/react/index.js
CHANGED
|
@@ -152,6 +152,7 @@ var STORE_DOORS = [
|
|
|
152
152
|
{ name: "assert_client_may_change", args: "p_organization_id uuid, p_subject_id uuid, p_door text, p_required permission_level DEFAULT 'editor'::permission_level, p_subject_word text DEFAULT 'record'::text", returns: "void", security: "invoker" },
|
|
153
153
|
{ name: "assert_client_may_open", args: "p_organization_id uuid, p_subject_id uuid, p_door text, p_required permission_level DEFAULT 'viewer'::permission_level, p_subject_word text DEFAULT 'record'::text", returns: "void", security: "invoker" },
|
|
154
154
|
{ name: "assert_client_may_reach", args: "p_organization_id uuid, p_door text", returns: "void", security: "invoker" },
|
|
155
|
+
{ name: "assert_columns_are_defined", args: "p_organization_id uuid, p_record_id uuid, p_patch jsonb", returns: "void", security: "definer" },
|
|
155
156
|
{ name: "assert_entity_door", args: "p_organization_id uuid, p_door text", returns: "void", security: "definer" },
|
|
156
157
|
{ name: "assert_entity_is_organization_scoped", args: "p_token text, p_label text, p_scoped boolean", returns: "void", security: "invoker" },
|
|
157
158
|
{ name: "assert_may_know_table", args: "p_organization_id uuid, p_table_id uuid, p_door text", returns: "void", security: "invoker" },
|
|
@@ -206,6 +207,7 @@ var STORE_DOORS = [
|
|
|
206
207
|
{ name: "comment_mention_deliver", args: "p_organization_id uuid, p_record_id uuid, p_table_id uuid, p_comment_id uuid, p_recipient uuid, p_author_name text, p_record_title text, p_body text", returns: "uuid", security: "definer" },
|
|
207
208
|
{ name: "comment_thread", args: "p_organization_id uuid, p_record_id uuid, p_include_resolved boolean DEFAULT false", returns: "jsonb", security: "definer" },
|
|
208
209
|
{ name: "comment_write", args: "p_organization_id uuid, p_record_id uuid, p_body text, p_anchor jsonb DEFAULT '{}'::jsonb, p_parent_comment_id uuid DEFAULT NULL::uuid, p_mentions uuid[] DEFAULT NULL::uuid[]", returns: "jsonb", security: "definer" },
|
|
210
|
+
{ name: "computed_block", args: "p_block jsonb", returns: "jsonb", security: "invoker" },
|
|
209
211
|
{ name: "computed_provenance", args: "p_organization_id uuid, p_record_id uuid", returns: "TABLE(field_key text, field_id uuid, value jsonb, rule_id uuid, rule_version integer, computed_at timestamp with time zone)", security: "invoker" },
|
|
210
212
|
{ name: "containment_chain", args: "p_organization_id uuid, p_record_id uuid", returns: "TABLE(ancestor_id uuid, depth integer)", security: "invoker" },
|
|
211
213
|
{ name: "containment_depth_ceiling", args: "p_organization_id uuid DEFAULT NULL::uuid", returns: "integer", security: "invoker" },
|
|
@@ -237,6 +239,7 @@ var STORE_DOORS = [
|
|
|
237
239
|
{ name: "derive_visibility", args: "p_container_type text, p_container_id uuid", returns: "TABLE(item_type text, item_id uuid, depth integer, max_level permission_level)", security: "definer" },
|
|
238
240
|
{ name: "derived_value", args: "p_organization_id uuid, p_record_id uuid, p_field_data jsonb, p_values jsonb DEFAULT NULL::jsonb", returns: "jsonb", security: "invoker" },
|
|
239
241
|
{ name: "derived_values", args: "p_organization_id uuid, p_record_id uuid", returns: "jsonb", security: "invoker" },
|
|
242
|
+
{ name: "derived_values_of", args: "v_rec custom.record", returns: "jsonb", security: "invoker" },
|
|
240
243
|
{ name: "doc_content_hash", args: "p_body text", returns: "text", security: "invoker" },
|
|
241
244
|
{ name: "doc_format_value", args: "p_field_data jsonb, p_value jsonb", returns: "text", security: "invoker" },
|
|
242
245
|
{ name: "doc_letterhead", args: "p_organization_id uuid", returns: "jsonb", security: "definer" },
|
|
@@ -502,6 +505,7 @@ var STORE_DOORS = [
|
|
|
502
505
|
{ name: "record_table", args: "p_organization_id uuid, p_record_id uuid", returns: "uuid", security: "definer" },
|
|
503
506
|
{ 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" },
|
|
504
507
|
{ name: "record_values", args: "p_organization_id uuid, p_record_id uuid", returns: "jsonb", security: "invoker" },
|
|
508
|
+
{ name: "record_values_of", args: "p_row custom.record", returns: "jsonb", security: "invoker" },
|
|
505
509
|
{ name: "record_values_versioned", args: "p_organization_id uuid, p_record_id uuid", returns: "TABLE(field_key text, field_id uuid, value jsonb, value_version integer, source jsonb, absent_reason text, actor text, on_behalf_of text, written_at timestamp with time zone, alternates jsonb)", security: "definer" },
|
|
506
510
|
{ name: "record_write", args: "p_organization_id uuid, p_table_id uuid, p_data jsonb", returns: "uuid", security: "definer" },
|
|
507
511
|
{ name: "record_write_many", args: "p_organization_id uuid, p_table_id uuid, p_rows jsonb[], p_ids uuid[] DEFAULT NULL::uuid[]", returns: "uuid[]", security: "definer" },
|
|
@@ -705,7 +709,7 @@ var STORE_REFUSAL_CODES = [
|
|
|
705
709
|
{ 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" },
|
|
706
710
|
{ 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" },
|
|
707
711
|
{ 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" },
|
|
708
|
-
{ code: "23514", raised_by: "_checklist_instantiate,_checklist_step_guard,
|
|
712
|
+
{ 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_columns_word_guard,_table_shape_guard,_undeclared_key_guard,_value_envelope,_work_shape_guard,_workdoors_approval_guard,assert_columns_are_defined,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" },
|
|
709
713
|
{ code: "40001", raised_by: "has_visibility_at" },
|
|
710
714
|
{ 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" },
|
|
711
715
|
{ code: "42703", raised_by: "entity_table,portal_declare" },
|
|
@@ -1277,6 +1281,7 @@ var ENTITY_TOKENS = [
|
|
|
1277
1281
|
"mandate_advance_batch_row",
|
|
1278
1282
|
"mandate_binding",
|
|
1279
1283
|
"mandate_binding_legacy",
|
|
1284
|
+
"mandate_goal_clauses",
|
|
1280
1285
|
"mandate_legacy",
|
|
1281
1286
|
"mandate_observation",
|
|
1282
1287
|
"mandate_reference",
|
|
@@ -2432,7 +2437,8 @@ function createRecordsClient(config) {
|
|
|
2432
2437
|
const { document, hidden } = unfold(row.document);
|
|
2433
2438
|
return { id: row.id, document, level: row.level, hidden };
|
|
2434
2439
|
});
|
|
2435
|
-
|
|
2440
|
+
const total = rows.length < limit ? offset + rows.length : null;
|
|
2441
|
+
return ok({ rows, total });
|
|
2436
2442
|
},
|
|
2437
2443
|
async query(input) {
|
|
2438
2444
|
const plan = planQuery(input);
|
|
@@ -4105,7 +4111,7 @@ function useRecordsActor() {
|
|
|
4105
4111
|
}
|
|
4106
4112
|
|
|
4107
4113
|
// src/react/hooks.ts
|
|
4108
|
-
import { useCallback, useEffect, useMemo as useMemo2, useRef, useState } from "react";
|
|
4114
|
+
import { useCallback, useEffect, useMemo as useMemo2, useRef, useState, useSyncExternalStore } from "react";
|
|
4109
4115
|
function useAsync(run, deps) {
|
|
4110
4116
|
const client = useRecordsClient();
|
|
4111
4117
|
const [state, setState] = useState(
|
|
@@ -4174,13 +4180,36 @@ function useMyLevel(id) {
|
|
|
4174
4180
|
[id]
|
|
4175
4181
|
);
|
|
4176
4182
|
}
|
|
4183
|
+
var shapeRevisions = /* @__PURE__ */ new Map();
|
|
4184
|
+
var shapeListeners = /* @__PURE__ */ new Set();
|
|
4185
|
+
function tableShapeChanged(tableId) {
|
|
4186
|
+
shapeRevisions.set(tableId, (shapeRevisions.get(tableId) ?? 0) + 1);
|
|
4187
|
+
for (const listener of shapeListeners) listener();
|
|
4188
|
+
}
|
|
4189
|
+
function registerShapeInterest(tableId) {
|
|
4190
|
+
if (!shapeRevisions.has(tableId)) shapeRevisions.set(tableId, 0);
|
|
4191
|
+
}
|
|
4192
|
+
function subscribeToShape(listener) {
|
|
4193
|
+
shapeListeners.add(listener);
|
|
4194
|
+
return () => {
|
|
4195
|
+
shapeListeners.delete(listener);
|
|
4196
|
+
};
|
|
4197
|
+
}
|
|
4198
|
+
function useShapeRevision(tableId) {
|
|
4199
|
+
const read = useCallback(() => tableId ? shapeRevisions.get(tableId) ?? 0 : 0, [tableId]);
|
|
4200
|
+
return useSyncExternalStore(subscribeToShape, read, () => 0);
|
|
4201
|
+
}
|
|
4177
4202
|
function useFields(tableId, recordType) {
|
|
4203
|
+
const revision = useShapeRevision(tableId);
|
|
4204
|
+
useEffect(() => {
|
|
4205
|
+
if (tableId) registerShapeInterest(tableId);
|
|
4206
|
+
}, [tableId]);
|
|
4178
4207
|
return useAsync(
|
|
4179
4208
|
async (client) => {
|
|
4180
4209
|
if (!tableId) return { ok: true, data: [] };
|
|
4181
4210
|
return client.fields({ table_id: tableId, ...recordType === void 0 ? {} : { recordType } });
|
|
4182
4211
|
},
|
|
4183
|
-
[tableId, recordType]
|
|
4212
|
+
[tableId, recordType, revision]
|
|
4184
4213
|
);
|
|
4185
4214
|
}
|
|
4186
4215
|
function useRecords(tableId, options = {}) {
|
|
@@ -4353,19 +4382,41 @@ function useFieldMutation() {
|
|
|
4353
4382
|
},
|
|
4354
4383
|
[]
|
|
4355
4384
|
);
|
|
4385
|
+
const announce = useCallback((tableId) => {
|
|
4386
|
+
if (tableId) {
|
|
4387
|
+
tableShapeChanged(tableId);
|
|
4388
|
+
return;
|
|
4389
|
+
}
|
|
4390
|
+
for (const id of [...shapeRevisions.keys()]) tableShapeChanged(id);
|
|
4391
|
+
}, []);
|
|
4356
4392
|
return useMemo2(
|
|
4357
4393
|
() => ({
|
|
4358
|
-
declare: (args) =>
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4394
|
+
declare: async (args) => {
|
|
4395
|
+
const made = await run(
|
|
4396
|
+
() => client.fieldDeclare({ table_id: args.table_id, spec: args.spec }),
|
|
4397
|
+
null
|
|
4398
|
+
);
|
|
4399
|
+
if (made !== null) announce(args.table_id);
|
|
4400
|
+
return made;
|
|
4401
|
+
},
|
|
4402
|
+
update: async (args) => {
|
|
4403
|
+
const changed = await run(
|
|
4404
|
+
() => client.fieldUpdate({ field_id: args.field_id, patch: args.patch }),
|
|
4405
|
+
null
|
|
4406
|
+
);
|
|
4407
|
+
if (changed !== null) announce(null);
|
|
4408
|
+
return changed;
|
|
4409
|
+
},
|
|
4410
|
+
retire: async (args) => {
|
|
4411
|
+
const gone = await run(() => client.fieldRetire({ field_id: args.field_id }), false);
|
|
4412
|
+
if (gone) announce(null);
|
|
4413
|
+
return gone;
|
|
4414
|
+
},
|
|
4364
4415
|
saving,
|
|
4365
4416
|
error,
|
|
4366
4417
|
clearError: () => setError(null)
|
|
4367
4418
|
}),
|
|
4368
|
-
[client, run, saving, error]
|
|
4419
|
+
[client, run, announce, saving, error]
|
|
4369
4420
|
);
|
|
4370
4421
|
}
|
|
4371
4422
|
function useMergeField(key, state) {
|
|
@@ -4878,6 +4929,7 @@ export {
|
|
|
4878
4929
|
portalPath,
|
|
4879
4930
|
publicFormPath,
|
|
4880
4931
|
scopeChip,
|
|
4932
|
+
tableShapeChanged,
|
|
4881
4933
|
useEntityFieldMutation,
|
|
4882
4934
|
useEntityFieldRights,
|
|
4883
4935
|
useEntityFields,
|