order-management 0.0.95 → 0.0.97

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.
@@ -0,0 +1,257 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AUDIT_TRIGGER_FUNCTION = exports.AUDIT_TABLE_NAME = exports.AUDITED_TABLE_NAMES = void 0;
4
+ exports.auditTriggerName = auditTriggerName;
5
+ exports.buildCreateAuditTriggerSql = buildCreateAuditTriggerSql;
6
+ exports.buildDropAuditTriggerSql = buildDropAuditTriggerSql;
7
+ /**
8
+ * Tables that receive a BEFORE DELETE audit trigger.
9
+ * Tables missing from the database are skipped at migration time.
10
+ * Never add `deleted_records_audit` here (the trigger would recurse).
11
+ */
12
+ exports.AUDITED_TABLE_NAMES = [
13
+ "account_deletion_request",
14
+ "account_holder",
15
+ "api_key",
16
+ "application_method_buy_rules",
17
+ "application_method_target_rules",
18
+ "auth_identity",
19
+ "auth_mfa_factor",
20
+ "auth_mfa_recovery_code",
21
+ "auth_password_reset_token",
22
+ "auth_verification",
23
+ "cancel_order_reason_mapping",
24
+ "capture",
25
+ "cart",
26
+ "cart_address",
27
+ "cart_line_item",
28
+ "cart_line_item_adjustment",
29
+ "cart_line_item_tax_line",
30
+ "cart_payment_collection",
31
+ "cart_promotion",
32
+ "cart_shipping_method",
33
+ "cart_shipping_method_adjustment",
34
+ "cart_shipping_method_tax_line",
35
+ "contact_email_subscription",
36
+ "contact_request",
37
+ "contact_request_comment",
38
+ "credit_line",
39
+ "currency",
40
+ "customer",
41
+ "customer_account_holder",
42
+ "customer_address",
43
+ "customer_group",
44
+ "customer_group_customer",
45
+ "dynamic_config_value",
46
+ "fulfillment",
47
+ "fulfillment_address",
48
+ "fulfillment_item",
49
+ "fulfillment_label",
50
+ "fulfillment_provider",
51
+ "fulfillment_set",
52
+ "geo_zone",
53
+ "image",
54
+ "inventory_count_item",
55
+ "inventory_count_session",
56
+ "inventory_item",
57
+ "inventory_level",
58
+ "inventory_movement",
59
+ "inventory_purchase",
60
+ "inventory_purchase_attachment",
61
+ "inventory_purchase_audit_event",
62
+ "inventory_purchase_batch",
63
+ "inventory_purchase_line_item",
64
+ "invite",
65
+ "invite_rbac_role",
66
+ "invoice",
67
+ "invoice_sequence",
68
+ "layout_configuration",
69
+ "link_module_migrations",
70
+ "location_fulfillment_provider",
71
+ "location_fulfillment_set",
72
+ "loyalty_gift_card",
73
+ "mikro_orm_migrations",
74
+ "notification",
75
+ "notification_provider",
76
+ "notification_tokens",
77
+ "order",
78
+ "order_address",
79
+ "order_cart",
80
+ "order_change",
81
+ "order_change_action",
82
+ "order_claim",
83
+ "order_claim_item",
84
+ "order_claim_item_image",
85
+ "order_credit_line",
86
+ "order_exchange",
87
+ "order_exchange_item",
88
+ "order_fulfillment",
89
+ "order_item",
90
+ "order_line_item",
91
+ "order_line_item_adjustment",
92
+ "order_line_item_tax_line",
93
+ "order_payment_collection",
94
+ "order_promotion",
95
+ "order_shipping",
96
+ "order_shipping_method",
97
+ "order_shipping_method_adjustment",
98
+ "order_shipping_method_tax_line",
99
+ "order_summary",
100
+ "order_transaction",
101
+ "otp_verification",
102
+ "payment",
103
+ "payment_collection",
104
+ "payment_collection_payment_providers",
105
+ "payment_detail",
106
+ "payment_provider",
107
+ "payment_session",
108
+ "payout_request",
109
+ "price",
110
+ "price_list",
111
+ "price_list_rule",
112
+ "price_preference",
113
+ "price_rule",
114
+ "price_set",
115
+ "product",
116
+ "product_category",
117
+ "product_category_product",
118
+ "product_collection",
119
+ "product_display_priority",
120
+ "product_option",
121
+ "product_option_value",
122
+ "product_product_option",
123
+ "product_product_option_value",
124
+ "product_sales_channel",
125
+ "product_shipping_profile",
126
+ "product_tag",
127
+ "product_tags",
128
+ "product_type",
129
+ "product_variant",
130
+ "product_variant_inventory_item",
131
+ "product_variant_option",
132
+ "product_variant_price_set",
133
+ "product_variant_product_image",
134
+ "product_view",
135
+ "promotion",
136
+ "promotion_application_method",
137
+ "promotion_campaign",
138
+ "promotion_campaign_budget",
139
+ "promotion_campaign_budget_usage",
140
+ "promotion_promotion_rule",
141
+ "promotion_rule",
142
+ "promotion_rule_value",
143
+ "property_label",
144
+ "provider_identity",
145
+ "publishable_api_key_sales_channel",
146
+ "purchase_supplier",
147
+ "referral_link",
148
+ "referral_reward",
149
+ "refund",
150
+ "refund_payment_mapping",
151
+ "refund_reason",
152
+ "region",
153
+ "region_country",
154
+ "region_payment_provider",
155
+ "reservation_item",
156
+ "return",
157
+ "return_fulfillment",
158
+ "return_item",
159
+ "return_reason",
160
+ "review",
161
+ "sales_channel",
162
+ "sales_channel_stock_location",
163
+ "script_migrations",
164
+ "search_index",
165
+ "search_index_sync",
166
+ "search_index_version",
167
+ "search_postgres_index",
168
+ "service_zone",
169
+ "shipment_tracking_event",
170
+ "shipping_option",
171
+ "shipping_option_price_set",
172
+ "shipping_option_rule",
173
+ "shipping_option_type",
174
+ "shipping_profile",
175
+ "skip_merge_cart",
176
+ "stock_location",
177
+ "stock_location_address",
178
+ "store",
179
+ "store_credit_account",
180
+ "store_credit_account_transaction",
181
+ "store_currency",
182
+ "store_locale",
183
+ "tax_provider",
184
+ "tax_rate",
185
+ "tax_rate_rule",
186
+ "tax_region",
187
+ "telegram_config",
188
+ "telegram_notification_log",
189
+ "user",
190
+ "user_preference",
191
+ "user_rbac_role",
192
+ "view_configuration",
193
+ "wallet_account",
194
+ "wallet_credit_lot",
195
+ "wallet_gift_card",
196
+ "wallet_hold",
197
+ "wallet_ledger_entry",
198
+ "wallet_rate_limit",
199
+ "wallet_refund_intent",
200
+ "wallet_top_up_request",
201
+ "wishlist",
202
+ "workflow_execution",
203
+ ];
204
+ exports.AUDIT_TABLE_NAME = "deleted_records_audit";
205
+ exports.AUDIT_TRIGGER_FUNCTION = "om_audit_row_delete";
206
+ const TRIGGER_PREFIX = "om_ad_";
207
+ const PG_IDENTIFIER_MAX = 63;
208
+ /** Deterministic trigger name that stays within Postgres' 63-byte identifier limit. */
209
+ function auditTriggerName(tableName) {
210
+ const safe = tableName.replace(/[^a-z0-9_]/gi, "_").toLowerCase();
211
+ const full = `${TRIGGER_PREFIX}${safe}`;
212
+ if (full.length <= PG_IDENTIFIER_MAX)
213
+ return full;
214
+ let hash = 0;
215
+ for (const ch of safe)
216
+ hash = (hash * 31 + ch.charCodeAt(0)) >>> 0;
217
+ const suffix = `_${hash.toString(36)}`;
218
+ return `${full.slice(0, PG_IDENTIFIER_MAX - suffix.length)}${suffix}`;
219
+ }
220
+ function quoteLiteral(value) {
221
+ return `'${value.replace(/'/g, "''")}'`;
222
+ }
223
+ function quoteIdent(value) {
224
+ return `"${value.replace(/"/g, '""')}"`;
225
+ }
226
+ function buildCreateAuditTriggerSql(tableName) {
227
+ const trigger = quoteIdent(auditTriggerName(tableName));
228
+ const table = quoteIdent(tableName);
229
+ return `
230
+ DO $$
231
+ BEGIN
232
+ IF EXISTS (
233
+ SELECT 1 FROM information_schema.tables
234
+ WHERE table_schema = 'public' AND table_name = ${quoteLiteral(tableName)}
235
+ ) THEN
236
+ EXECUTE 'DROP TRIGGER IF EXISTS ' || ${quoteLiteral(trigger)} || ' ON public.' || ${quoteLiteral(table)};
237
+ EXECUTE 'CREATE TRIGGER ' || ${quoteLiteral(trigger)} || ' BEFORE DELETE ON public.' || ${quoteLiteral(table)} || ' FOR EACH ROW EXECUTE FUNCTION ${exports.AUDIT_TRIGGER_FUNCTION}()';
238
+ END IF;
239
+ END
240
+ $$;`;
241
+ }
242
+ function buildDropAuditTriggerSql(tableName) {
243
+ const trigger = quoteIdent(auditTriggerName(tableName));
244
+ const table = quoteIdent(tableName);
245
+ return `
246
+ DO $$
247
+ BEGIN
248
+ IF EXISTS (
249
+ SELECT 1 FROM information_schema.tables
250
+ WHERE table_schema = 'public' AND table_name = ${quoteLiteral(tableName)}
251
+ ) THEN
252
+ EXECUTE 'DROP TRIGGER IF EXISTS ' || ${quoteLiteral(trigger)} || ' ON public.' || ${quoteLiteral(table)};
253
+ END IF;
254
+ END
255
+ $$;`;
256
+ }
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXRlZC10YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kZWxldGVkLXJlY29yZHMtYXVkaXQvYXVkaXRlZC10YWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK01BLDRDQVFDO0FBVUQsZ0VBZUM7QUFFRCw0REFjQztBQWhRRDs7OztHQUlHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRztJQUNqQywwQkFBMEI7SUFDMUIsZ0JBQWdCO0lBQ2hCLFNBQVM7SUFDVCw4QkFBOEI7SUFDOUIsaUNBQWlDO0lBQ2pDLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsd0JBQXdCO0lBQ3hCLDJCQUEyQjtJQUMzQixtQkFBbUI7SUFDbkIsNkJBQTZCO0lBQzdCLFNBQVM7SUFDVCxNQUFNO0lBQ04sY0FBYztJQUNkLGdCQUFnQjtJQUNoQiwyQkFBMkI7SUFDM0IseUJBQXlCO0lBQ3pCLHlCQUF5QjtJQUN6QixnQkFBZ0I7SUFDaEIsc0JBQXNCO0lBQ3RCLGlDQUFpQztJQUNqQywrQkFBK0I7SUFDL0IsNEJBQTRCO0lBQzVCLGlCQUFpQjtJQUNqQix5QkFBeUI7SUFDekIsYUFBYTtJQUNiLFVBQVU7SUFDVixVQUFVO0lBQ1YseUJBQXlCO0lBQ3pCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIseUJBQXlCO0lBQ3pCLHNCQUFzQjtJQUN0QixhQUFhO0lBQ2IscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsc0JBQXNCO0lBQ3RCLGlCQUFpQjtJQUNqQixVQUFVO0lBQ1YsT0FBTztJQUNQLHNCQUFzQjtJQUN0Qix5QkFBeUI7SUFDekIsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLCtCQUErQjtJQUMvQixnQ0FBZ0M7SUFDaEMsMEJBQTBCO0lBQzFCLDhCQUE4QjtJQUM5QixRQUFRO0lBQ1Isa0JBQWtCO0lBQ2xCLFNBQVM7SUFD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
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DeletedRecordsAuditModuleService = exports.DELETED_RECORDS_AUDIT_MODULE = void 0;
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const service_1 = __importDefault(require("./service"));
9
+ exports.DeletedRecordsAuditModuleService = service_1.default;
10
+ exports.DELETED_RECORDS_AUDIT_MODULE = "deleted_records_audit";
11
+ exports.default = (0, utils_1.Module)(exports.DELETED_RECORDS_AUDIT_MODULE, {
12
+ service: service_1.default,
13
+ });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kZWxldGVkLXJlY29yZHMtYXVkaXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscURBQWtEO0FBQ2xELHdEQUF3RDtBQVEvQywyQ0FSRixpQkFBZ0MsQ0FRRTtBQU41QixRQUFBLDRCQUE0QixHQUFHLHVCQUF1QixDQUFBO0FBRW5FLGtCQUFlLElBQUEsY0FBTSxFQUFDLG9DQUE0QixFQUFFO0lBQ2xELE9BQU8sRUFBRSxpQkFBZ0M7Q0FDMUMsQ0FBQyxDQUFBIn0=
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20261008120000 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ const audited_tables_1 = require("../audited-tables");
6
+ class Migration20261008120000 extends migrations_1.Migration {
7
+ async up() {
8
+ this.addSql(`
9
+ CREATE TABLE IF NOT EXISTS "deleted_records_audit" (
10
+ "id" text NOT NULL PRIMARY KEY,
11
+ "table_name" text NOT NULL,
12
+ "record_id" text NULL,
13
+ "operation" text NOT NULL DEFAULT 'DELETE',
14
+ "old_data" jsonb NULL,
15
+ "occurred_at" timestamptz NOT NULL DEFAULT now(),
16
+ "deleted_by" text NULL,
17
+ "source" text NULL,
18
+ "created_at" timestamptz NOT NULL DEFAULT now(),
19
+ "updated_at" timestamptz NOT NULL DEFAULT now(),
20
+ "deleted_at" timestamptz NULL
21
+ );
22
+ `);
23
+ this.addSql(`
24
+ CREATE INDEX IF NOT EXISTS "IDX_deleted_records_audit_occurred_at"
25
+ ON "deleted_records_audit" ("occurred_at" DESC);
26
+ `);
27
+ this.addSql(`
28
+ CREATE INDEX IF NOT EXISTS "IDX_deleted_records_audit_table_occurred"
29
+ ON "deleted_records_audit" ("table_name", "occurred_at" DESC);
30
+ `);
31
+ this.addSql(`
32
+ CREATE INDEX IF NOT EXISTS "IDX_deleted_records_audit_record_id"
33
+ ON "deleted_records_audit" ("record_id");
34
+ `);
35
+ this.addSql(`
36
+ CREATE INDEX IF NOT EXISTS "IDX_deleted_records_audit_source"
37
+ ON "deleted_records_audit" ("source") WHERE "source" IS NOT NULL;
38
+ `);
39
+ this.addSql(`
40
+ CREATE OR REPLACE FUNCTION ${audited_tables_1.AUDIT_TRIGGER_FUNCTION}()
41
+ RETURNS trigger
42
+ LANGUAGE plpgsql
43
+ AS $fn$
44
+ DECLARE
45
+ row_json jsonb := to_jsonb(OLD);
46
+ BEGIN
47
+ INSERT INTO "deleted_records_audit" (
48
+ "id", "table_name", "record_id", "operation", "old_data",
49
+ "occurred_at", "deleted_by", "source"
50
+ ) VALUES (
51
+ 'dra_' || replace(gen_random_uuid()::text, '-', ''),
52
+ TG_TABLE_NAME,
53
+ row_json ->> 'id',
54
+ 'DELETE',
55
+ row_json,
56
+ now(),
57
+ NULLIF(current_setting('app.audit_actor_id', true), ''),
58
+ NULLIF(current_setting('app.audit_source', true), '')
59
+ );
60
+ RETURN OLD;
61
+ END;
62
+ $fn$;
63
+ `);
64
+ for (const table of audited_tables_1.AUDITED_TABLE_NAMES) {
65
+ this.addSql((0, audited_tables_1.buildCreateAuditTriggerSql)(table));
66
+ }
67
+ }
68
+ async down() {
69
+ for (const table of audited_tables_1.AUDITED_TABLE_NAMES) {
70
+ this.addSql((0, audited_tables_1.buildDropAuditTriggerSql)(table));
71
+ }
72
+ this.addSql(`DROP FUNCTION IF EXISTS ${audited_tables_1.AUDIT_TRIGGER_FUNCTION}();`);
73
+ this.addSql(`DROP INDEX IF EXISTS "IDX_deleted_records_audit_source";`);
74
+ this.addSql(`DROP INDEX IF EXISTS "IDX_deleted_records_audit_record_id";`);
75
+ this.addSql(`DROP INDEX IF EXISTS "IDX_deleted_records_audit_table_occurred";`);
76
+ this.addSql(`DROP INDEX IF EXISTS "IDX_deleted_records_audit_occurred_at";`);
77
+ this.addSql(`DROP TABLE IF EXISTS "deleted_records_audit";`);
78
+ }
79
+ }
80
+ exports.Migration20261008120000 = Migration20261008120000;
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjEwMDgxMjAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kZWxldGVkLXJlY29yZHMtYXVkaXQvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI2MTAwODEyMDAwMC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBb0U7QUFDcEUsc0RBSzBCO0FBRTFCLE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFDcEQsS0FBSyxDQUFDLEVBQUU7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7OztLQWNYLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLENBQUM7OztLQUdYLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxNQUFNLENBQUM7OztLQUdYLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxNQUFNLENBQUM7OztLQUdYLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxNQUFNLENBQUM7OztLQUdYLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLENBQUM7bUNBQ21CLHVDQUFzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F1QnBELENBQUMsQ0FBQTtRQUVGLEtBQUssTUFBTSxLQUFLLElBQUksb0NBQW1CLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUEsMkNBQTBCLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsS0FBSyxNQUFNLEtBQUssSUFBSSxvQ0FBbUIsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBQSx5Q0FBd0IsRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzlDLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLDJCQUEyQix1Q0FBc0IsS0FBSyxDQUFDLENBQUE7UUFDbkUsSUFBSSxDQUFDLE1BQU0sQ0FBQywwREFBMEQsQ0FBQyxDQUFBO1FBQ3ZFLElBQUksQ0FBQyxNQUFNLENBQUMsNkRBQTZELENBQUMsQ0FBQTtRQUMxRSxJQUFJLENBQUMsTUFBTSxDQUFDLGtFQUFrRSxDQUFDLENBQUE7UUFDL0UsSUFBSSxDQUFDLE1BQU0sQ0FBQywrREFBK0QsQ0FBQyxDQUFBO1FBQzVFLElBQUksQ0FBQyxNQUFNLENBQUMsK0NBQStDLENBQUMsQ0FBQTtJQUM5RCxDQUFDO0NBQ0Y7QUE3RUQsMERBNkVDIn0=
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const DeletedRecordsAudit = utils_1.model.define("deleted_records_audit", {
5
+ id: utils_1.model.id().primaryKey(),
6
+ table_name: utils_1.model.text().searchable(),
7
+ record_id: utils_1.model.text().searchable().nullable(),
8
+ operation: utils_1.model.text().default("DELETE"),
9
+ old_data: utils_1.model.json().nullable(),
10
+ occurred_at: utils_1.model.dateTime(),
11
+ deleted_by: utils_1.model.text().nullable(),
12
+ source: utils_1.model.text().nullable(),
13
+ });
14
+ exports.default = DeletedRecordsAudit;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlZC1yZWNvcmRzLWF1ZGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvZGVsZXRlZC1yZWNvcmRzLWF1ZGl0L21vZGVscy9kZWxldGVkLXJlY29yZHMtYXVkaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBaUQ7QUFFakQsTUFBTSxtQkFBbUIsR0FBRyxhQUFLLENBQUMsTUFBTSxDQUFDLHVCQUF1QixFQUFFO0lBQ2hFLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLFVBQVUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQ3JDLFNBQVMsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQy9DLFNBQVMsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUN6QyxRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNqQyxXQUFXLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRTtJQUM3QixVQUFVLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNuQyxNQUFNLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNoQyxDQUFDLENBQUE7QUFFRixrQkFBZSxtQkFBbUIsQ0FBQSJ9
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const deleted_records_audit_1 = __importDefault(require("./models/deleted-records-audit"));
8
+ const DELETED_BY_OPTIONS_LIMIT = 200;
9
+ function asString(value) {
10
+ if (value === null || value === undefined)
11
+ return null;
12
+ return String(value);
13
+ }
14
+ function asIso(value) {
15
+ if (value instanceof Date)
16
+ return value.toISOString();
17
+ const parsed = new Date(String(value));
18
+ return Number.isNaN(parsed.getTime()) ? String(value) : parsed.toISOString();
19
+ }
20
+ function asNumber(value) {
21
+ const n = typeof value === "number" ? value : Number(value);
22
+ return Number.isFinite(n) ? n : 0;
23
+ }
24
+ function asObject(value) {
25
+ if (value === null || value === undefined)
26
+ return null;
27
+ if (typeof value === "string") {
28
+ try {
29
+ const parsed = JSON.parse(value);
30
+ return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)
31
+ ? parsed
32
+ : { value: parsed };
33
+ }
34
+ catch {
35
+ return { value };
36
+ }
37
+ }
38
+ if (typeof value === "object" && !Array.isArray(value))
39
+ return value;
40
+ return { value };
41
+ }
42
+ function rowsOf(result) {
43
+ if (typeof result === "object" && result !== null && "rows" in result) {
44
+ const rows = result.rows;
45
+ return Array.isArray(rows) ? rows : [];
46
+ }
47
+ return [];
48
+ }
49
+ function escapeLike(value) {
50
+ return value.replace(/[\\%_]/g, (ch) => `\\${ch}`);
51
+ }
52
+ class DeletedRecordsAuditModuleService extends (0, utils_1.MedusaService)({
53
+ DeletedRecordsAudit: deleted_records_audit_1.default,
54
+ }) {
55
+ constructor(container) {
56
+ super(container);
57
+ this.manager_ = container.manager;
58
+ }
59
+ toListItem(row) {
60
+ return {
61
+ id: String(row.id),
62
+ table_name: String(row.table_name),
63
+ record_id: asString(row.record_id),
64
+ operation: asString(row.operation) ?? "DELETE",
65
+ occurred_at: asIso(row.occurred_at),
66
+ deleted_by: asString(row.deleted_by),
67
+ source: asString(row.source),
68
+ };
69
+ }
70
+ async listAudits(filters) {
71
+ const where = [];
72
+ const params = [];
73
+ const q = filters.q?.trim();
74
+ if (q) {
75
+ where.push(`record_id ILIKE ? ESCAPE '\\'`);
76
+ params.push(`%${escapeLike(q)}%`);
77
+ }
78
+ if (filters.table_names?.length) {
79
+ where.push(`table_name IN (${filters.table_names.map(() => "?").join(", ")})`);
80
+ params.push(...filters.table_names);
81
+ }
82
+ if (filters.date_from) {
83
+ where.push(`occurred_at >= ?`);
84
+ params.push(filters.date_from);
85
+ }
86
+ if (filters.date_to) {
87
+ where.push(`occurred_at <= ?`);
88
+ params.push(filters.date_to);
89
+ }
90
+ if (filters.source) {
91
+ if (filters.source === "unknown") {
92
+ where.push(`source IS NULL`);
93
+ }
94
+ else {
95
+ where.push(`source = ?`);
96
+ params.push(filters.source);
97
+ }
98
+ }
99
+ const deletedBy = filters.deleted_by?.trim();
100
+ if (deletedBy) {
101
+ where.push(`deleted_by ILIKE ? ESCAPE '\\'`);
102
+ params.push(`%${escapeLike(deletedBy)}%`);
103
+ }
104
+ const whereSql = where.length ? `WHERE ${where.join(" AND ")}` : "";
105
+ const knex = this.manager_.getKnex();
106
+ const [listResult, countResult] = await Promise.all([
107
+ knex.raw(`SELECT id, table_name, record_id, operation, occurred_at, deleted_by, source
108
+ FROM deleted_records_audit
109
+ ${whereSql}
110
+ ORDER BY occurred_at DESC, id DESC
111
+ LIMIT ? OFFSET ?`, [...params, filters.limit, filters.offset]),
112
+ knex.raw(`SELECT COUNT(*)::int AS count FROM deleted_records_audit ${whereSql}`, params),
113
+ ]);
114
+ return {
115
+ audits: rowsOf(listResult).map((row) => this.toListItem(row)),
116
+ count: asNumber(rowsOf(countResult)[0]?.count),
117
+ };
118
+ }
119
+ async retrieveAudit(id) {
120
+ const knex = this.manager_.getKnex();
121
+ const result = await knex.raw(`SELECT id, table_name, record_id, operation, old_data, occurred_at, deleted_by, source
122
+ FROM deleted_records_audit
123
+ WHERE id = ?
124
+ LIMIT 1`, [id]);
125
+ const row = rowsOf(result)[0];
126
+ if (!row)
127
+ return null;
128
+ return { ...this.toListItem(row), old_data: asObject(row.old_data) };
129
+ }
130
+ async getStats(options = {}) {
131
+ const knex = this.manager_.getKnex();
132
+ const todayStartSql = options.today_start ? "?::timestamptz" : "date_trunc('day', now())";
133
+ const todayParams = options.today_start ? [options.today_start, options.today_start] : [];
134
+ const [totalsResult, sourcesResult, deletedByResult] = await Promise.all([
135
+ knex.raw(`SELECT
136
+ COUNT(*)::int AS total,
137
+ COUNT(*) FILTER (WHERE occurred_at >= ${todayStartSql})::int AS today,
138
+ COUNT(*) FILTER (WHERE occurred_at >= (${todayStartSql}) - interval '6 days')::int AS last_7_days,
139
+ COUNT(DISTINCT table_name)::int AS tables_affected
140
+ FROM deleted_records_audit`, todayParams),
141
+ knex.raw(`SELECT DISTINCT source FROM deleted_records_audit WHERE source IS NOT NULL ORDER BY source`),
142
+ knex.raw(`SELECT deleted_by FROM deleted_records_audit
143
+ WHERE deleted_by IS NOT NULL
144
+ GROUP BY deleted_by
145
+ ORDER BY MAX(occurred_at) DESC
146
+ LIMIT ?`, [DELETED_BY_OPTIONS_LIMIT]),
147
+ ]);
148
+ const totals = rowsOf(totalsResult)[0] ?? {};
149
+ return {
150
+ total: asNumber(totals.total),
151
+ today: asNumber(totals.today),
152
+ last_7_days: asNumber(totals.last_7_days),
153
+ tables_affected: asNumber(totals.tables_affected),
154
+ sources: rowsOf(sourcesResult)
155
+ .map((r) => asString(r.source))
156
+ .filter((s) => Boolean(s)),
157
+ deleted_by: rowsOf(deletedByResult)
158
+ .map((r) => asString(r.deleted_by))
159
+ .filter((s) => Boolean(s)),
160
+ };
161
+ }
162
+ }
163
+ exports.default = DeletedRecordsAuditModuleService;
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2RlbGV0ZWQtcmVjb3Jkcy1hdWRpdC9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscURBQXlEO0FBRXpELDJGQUFnRTtBQWVoRSxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQTtBQUVwQyxTQUFTLFFBQVEsQ0FBQyxLQUFjO0lBQzlCLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUztRQUFFLE9BQU8sSUFBSSxDQUFBO0lBQ3RELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQ3RCLENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBQyxLQUFjO0lBQzNCLElBQUksS0FBSyxZQUFZLElBQUk7UUFBRSxPQUFPLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUN0QyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFBO0FBQzlFLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxLQUFjO0lBQzlCLE1BQU0sQ0FBQyxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0QsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNuQyxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsS0FBYztJQUM5QixJQUFJ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
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kZWxldGVkLXJlY29yZHMtYXVkaXQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9