@ai0x0/utils 0.0.37 → 0.0.39

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.
Files changed (104) hide show
  1. package/.agents/skills/ai0x0-utils/backend/SKILL.md +12 -8
  2. package/README.md +42 -1
  3. package/SKILL.md +12 -8
  4. package/es/backend/route-operation/delete-operation.d.ts +3 -2
  5. package/es/backend/route-operation/delete-operation.js +35 -22
  6. package/es/backend/route-operation/get-list-operation.d.ts +6 -5
  7. package/es/backend/route-operation/get-list-operation.js +37 -22
  8. package/es/backend/route-operation/get-operation.d.ts +5 -4
  9. package/es/backend/route-operation/get-operation.js +34 -22
  10. package/es/backend/route-operation/post-operation.d.ts +5 -4
  11. package/es/backend/route-operation/post-operation.js +39 -34
  12. package/es/backend/route-operation/put-operation.d.ts +5 -4
  13. package/es/backend/route-operation/put-operation.js +44 -29
  14. package/es/backend/sqlite/actions/create-delete-action.d.ts +8 -0
  15. package/es/backend/sqlite/actions/create-delete-action.js +54 -0
  16. package/es/backend/sqlite/actions/create-get-action.d.ts +8 -0
  17. package/es/backend/sqlite/actions/create-get-action.js +64 -0
  18. package/es/backend/sqlite/actions/create-get-list-action.d.ts +11 -0
  19. package/es/backend/sqlite/actions/create-get-list-action.js +56 -0
  20. package/es/backend/sqlite/actions/create-post-action.d.ts +6 -0
  21. package/es/backend/sqlite/actions/create-post-action.js +31 -0
  22. package/es/backend/sqlite/actions/create-put-action.d.ts +8 -0
  23. package/es/backend/sqlite/actions/create-put-action.js +74 -0
  24. package/es/backend/sqlite/actions/get-list-data.d.ts +9 -0
  25. package/es/backend/sqlite/actions/get-list-data.js +75 -0
  26. package/es/backend/sqlite/actions/get-list-query.d.ts +19 -0
  27. package/es/backend/sqlite/actions/get-list-query.js +215 -0
  28. package/es/backend/sqlite/actions/index.d.ts +6 -0
  29. package/es/backend/sqlite/actions/index.js +6 -0
  30. package/es/backend/sqlite/actions/transform-body.d.ts +1 -0
  31. package/es/backend/sqlite/actions/transform-body.js +9 -0
  32. package/es/backend/sqlite/errors.d.ts +4 -0
  33. package/es/backend/sqlite/errors.js +31 -0
  34. package/es/backend/sqlite/index.d.ts +5 -0
  35. package/es/backend/sqlite/index.js +5 -0
  36. package/es/backend/sqlite/route-operation/delete-operation.d.ts +11 -0
  37. package/es/backend/sqlite/route-operation/delete-operation.js +122 -0
  38. package/es/backend/sqlite/route-operation/get-list-operation.d.ts +23 -0
  39. package/es/backend/sqlite/route-operation/get-list-operation.js +135 -0
  40. package/es/backend/sqlite/route-operation/get-operation.d.ts +17 -0
  41. package/es/backend/sqlite/route-operation/get-operation.js +132 -0
  42. package/es/backend/sqlite/route-operation/get-table-name.d.ts +3 -0
  43. package/es/backend/sqlite/route-operation/get-table-name.js +11 -0
  44. package/es/backend/sqlite/route-operation/index.d.ts +5 -0
  45. package/es/backend/sqlite/route-operation/index.js +5 -0
  46. package/es/backend/sqlite/route-operation/post-operation.d.ts +14 -0
  47. package/es/backend/sqlite/route-operation/post-operation.js +141 -0
  48. package/es/backend/sqlite/route-operation/put-operation.d.ts +15 -0
  49. package/es/backend/sqlite/route-operation/put-operation.js +156 -0
  50. package/es/backend/sqlite/schemas/index.d.ts +68 -0
  51. package/es/backend/sqlite/schemas/index.js +133 -0
  52. package/es/backend/sqlite/types.d.ts +16 -0
  53. package/es/backend/sqlite/types.js +1 -0
  54. package/lib/backend/route-operation/delete-operation.d.ts +3 -2
  55. package/lib/backend/route-operation/delete-operation.js +5 -3
  56. package/lib/backend/route-operation/get-list-operation.d.ts +6 -5
  57. package/lib/backend/route-operation/get-list-operation.js +8 -8
  58. package/lib/backend/route-operation/get-operation.d.ts +5 -4
  59. package/lib/backend/route-operation/get-operation.js +8 -8
  60. package/lib/backend/route-operation/post-operation.d.ts +5 -4
  61. package/lib/backend/route-operation/post-operation.js +4 -3
  62. package/lib/backend/route-operation/put-operation.d.ts +5 -4
  63. package/lib/backend/route-operation/put-operation.js +6 -4
  64. package/lib/backend/sqlite/actions/create-delete-action.d.ts +8 -0
  65. package/lib/backend/sqlite/actions/create-delete-action.js +53 -0
  66. package/lib/backend/sqlite/actions/create-get-action.d.ts +8 -0
  67. package/lib/backend/sqlite/actions/create-get-action.js +65 -0
  68. package/lib/backend/sqlite/actions/create-get-list-action.d.ts +11 -0
  69. package/lib/backend/sqlite/actions/create-get-list-action.js +63 -0
  70. package/lib/backend/sqlite/actions/create-post-action.d.ts +6 -0
  71. package/lib/backend/sqlite/actions/create-post-action.js +39 -0
  72. package/lib/backend/sqlite/actions/create-put-action.d.ts +8 -0
  73. package/lib/backend/sqlite/actions/create-put-action.js +60 -0
  74. package/lib/backend/sqlite/actions/get-list-data.d.ts +9 -0
  75. package/lib/backend/sqlite/actions/get-list-data.js +51 -0
  76. package/lib/backend/sqlite/actions/get-list-query.d.ts +19 -0
  77. package/lib/backend/sqlite/actions/get-list-query.js +165 -0
  78. package/lib/backend/sqlite/actions/index.d.ts +6 -0
  79. package/lib/backend/sqlite/actions/index.js +44 -0
  80. package/lib/backend/sqlite/actions/transform-body.d.ts +1 -0
  81. package/lib/backend/sqlite/actions/transform-body.js +49 -0
  82. package/lib/backend/sqlite/errors.d.ts +4 -0
  83. package/lib/backend/sqlite/errors.js +35 -0
  84. package/lib/backend/sqlite/index.d.ts +5 -0
  85. package/lib/backend/sqlite/index.js +31 -0
  86. package/lib/backend/sqlite/route-operation/delete-operation.d.ts +11 -0
  87. package/lib/backend/sqlite/route-operation/delete-operation.js +92 -0
  88. package/lib/backend/sqlite/route-operation/get-list-operation.d.ts +23 -0
  89. package/lib/backend/sqlite/route-operation/get-list-operation.js +108 -0
  90. package/lib/backend/sqlite/route-operation/get-operation.d.ts +17 -0
  91. package/lib/backend/sqlite/route-operation/get-operation.js +107 -0
  92. package/lib/backend/sqlite/route-operation/get-table-name.d.ts +3 -0
  93. package/lib/backend/sqlite/route-operation/get-table-name.js +35 -0
  94. package/lib/backend/sqlite/route-operation/index.d.ts +5 -0
  95. package/lib/backend/sqlite/route-operation/index.js +31 -0
  96. package/lib/backend/sqlite/route-operation/post-operation.d.ts +14 -0
  97. package/lib/backend/sqlite/route-operation/post-operation.js +95 -0
  98. package/lib/backend/sqlite/route-operation/put-operation.d.ts +15 -0
  99. package/lib/backend/sqlite/route-operation/put-operation.js +104 -0
  100. package/lib/backend/sqlite/schemas/index.d.ts +68 -0
  101. package/lib/backend/sqlite/schemas/index.js +113 -0
  102. package/lib/backend/sqlite/types.d.ts +16 -0
  103. package/lib/backend/sqlite/types.js +17 -0
  104. package/package.json +3 -1
@@ -0,0 +1,165 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc2) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc2 = __getOwnPropDesc(from, key)) || desc2.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/backend/sqlite/actions/get-list-query.ts
20
+ var get_list_query_exports = {};
21
+ __export(get_list_query_exports, {
22
+ getListQuery: () => getListQuery
23
+ });
24
+ module.exports = __toCommonJS(get_list_query_exports);
25
+ var import_drizzle_orm = require("drizzle-orm");
26
+ function getListQuery({
27
+ db,
28
+ fields,
29
+ jsonArrayFields,
30
+ params,
31
+ relations,
32
+ table
33
+ }) {
34
+ const {
35
+ page = 1,
36
+ pageSize = 10,
37
+ orderBy = "createdAt",
38
+ orderDir = "desc",
39
+ ...filters
40
+ } = params;
41
+ function buildBaseQuery(table2, fields2, relations2) {
42
+ let queryFields = { ...fields2 };
43
+ if (relations2 == null ? void 0 : relations2.length) {
44
+ for (const { select } of relations2) {
45
+ queryFields = { ...queryFields, ...select };
46
+ }
47
+ }
48
+ const query2 = db.select(queryFields).from(table2);
49
+ if (relations2 == null ? void 0 : relations2.length) {
50
+ query2.groupBy(
51
+ table2.id,
52
+ ...relations2.filter(({ groupBy }) => groupBy).filter(({ table: table3 }) => table3).map(({ table: table3 }) => table3.id)
53
+ );
54
+ }
55
+ return query2;
56
+ }
57
+ function findTargetColumn(key, table2, relations2) {
58
+ var _a;
59
+ return (_a = [table2].concat(
60
+ (relations2 == null ? void 0 : relations2.filter(({ table: table3 }) => table3).map(({ table: table3 }) => table3)) || []
61
+ ).find((table3) => table3[key])) == null ? void 0 : _a[key];
62
+ }
63
+ function addCondition(conditions2, key, value, targetColumn) {
64
+ const isIdField = /id/i.test(key);
65
+ const isJsonArray = jsonArrayFields == null ? void 0 : jsonArrayFields.includes(key);
66
+ if (typeof value === "string") {
67
+ if (value.includes(",")) {
68
+ const values = value.split(",").map((val) => val.trim()).filter(Boolean);
69
+ if (values.length > 0) {
70
+ if (isJsonArray) {
71
+ conditions2.push(
72
+ import_drizzle_orm.sql`
73
+ EXISTS (
74
+ SELECT 1 FROM json_each(${targetColumn}) tag
75
+ WHERE tag.value LIKE ${`%${values[0]}%`}
76
+ )
77
+ `
78
+ );
79
+ } else if (isIdField) {
80
+ conditions2.push((0, import_drizzle_orm.inArray)(targetColumn, values));
81
+ } else {
82
+ conditions2.push(
83
+ (0, import_drizzle_orm.or)(
84
+ ...values.map((val) => (0, import_drizzle_orm.like)(targetColumn, `%${val}%`))
85
+ )
86
+ );
87
+ }
88
+ }
89
+ } else {
90
+ if (isJsonArray) {
91
+ conditions2.push(
92
+ import_drizzle_orm.sql`
93
+ EXISTS (
94
+ SELECT 1 FROM json_each(${targetColumn}) tag
95
+ WHERE tag.value LIKE ${`%${value}%`}
96
+ )
97
+ `
98
+ );
99
+ } else if (isIdField) {
100
+ conditions2.push((0, import_drizzle_orm.eq)(targetColumn, value));
101
+ } else {
102
+ conditions2.push((0, import_drizzle_orm.like)(targetColumn, `%${value}%`));
103
+ }
104
+ }
105
+ } else {
106
+ conditions2.push((0, import_drizzle_orm.eq)(targetColumn, value));
107
+ }
108
+ }
109
+ function buildConditions(filters2, table2, relations2) {
110
+ const conditions2 = [];
111
+ for (const [key, value] of Object.entries(filters2)) {
112
+ if (!value) {
113
+ continue;
114
+ }
115
+ if (key.endsWith("AtFrom") || key.endsWith("AtTo")) {
116
+ const baseFieldName = key.replace(/(AtFrom|AtTo)$/, "");
117
+ const targetColumn2 = findTargetColumn(
118
+ `${baseFieldName}At`,
119
+ table2,
120
+ relations2
121
+ );
122
+ if (!targetColumn2) {
123
+ continue;
124
+ }
125
+ if (key.endsWith("AtFrom")) {
126
+ conditions2.push((0, import_drizzle_orm.gte)(targetColumn2, new Date(value)));
127
+ } else if (key.endsWith("AtTo")) {
128
+ conditions2.push((0, import_drizzle_orm.lte)(targetColumn2, new Date(value)));
129
+ }
130
+ continue;
131
+ }
132
+ const targetColumn = findTargetColumn(
133
+ key,
134
+ table2,
135
+ relations2
136
+ );
137
+ if (!targetColumn) {
138
+ continue;
139
+ }
140
+ addCondition(conditions2, key, value, targetColumn);
141
+ }
142
+ return conditions2;
143
+ }
144
+ function buildOrderBy(table2, orderBy2, orderDir2) {
145
+ const orderColumn = table2[orderBy2];
146
+ return orderDir2 === "asc" ? (0, import_drizzle_orm.asc)(orderColumn) : (0, import_drizzle_orm.desc)(orderColumn);
147
+ }
148
+ const baseQuery = buildBaseQuery(table, fields, relations);
149
+ const conditions = buildConditions(filters, table, relations);
150
+ const query = baseQuery.where(conditions.length > 0 ? (0, import_drizzle_orm.and)(...conditions) : void 0).orderBy(buildOrderBy(table, orderBy, orderDir)).limit(pageSize).offset((page - 1) * pageSize);
151
+ const countQuery = db.select({ count: import_drizzle_orm.sql`COUNT(DISTINCT ${table.id})` }).from(table).where(conditions.length > 0 ? (0, import_drizzle_orm.and)(...conditions) : void 0);
152
+ if (relations == null ? void 0 : relations.length) {
153
+ for (const { table: relationTable, sql: joinSql } of relations) {
154
+ if (relationTable) {
155
+ query.leftJoin(relationTable, joinSql);
156
+ countQuery.leftJoin(relationTable, joinSql);
157
+ }
158
+ }
159
+ }
160
+ return { countQuery, query };
161
+ }
162
+ // Annotate the CommonJS export names for ESM import in node:
163
+ 0 && (module.exports = {
164
+ getListQuery
165
+ });
@@ -0,0 +1,6 @@
1
+ export { createDeleteAction } from "./create-delete-action.js";
2
+ export { createGetAction } from "./create-get-action.js";
3
+ export { createGetListAction } from "./create-get-list-action.js";
4
+ export { createPostAction } from "./create-post-action.js";
5
+ export { createPutAction } from "./create-put-action.js";
6
+ export { getListQuery } from "./get-list-query.js";
@@ -0,0 +1,44 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/backend/sqlite/actions/index.ts
20
+ var actions_exports = {};
21
+ __export(actions_exports, {
22
+ createDeleteAction: () => import_create_delete_action.createDeleteAction,
23
+ createGetAction: () => import_create_get_action.createGetAction,
24
+ createGetListAction: () => import_create_get_list_action.createGetListAction,
25
+ createPostAction: () => import_create_post_action.createPostAction,
26
+ createPutAction: () => import_create_put_action.createPutAction,
27
+ getListQuery: () => import_get_list_query.getListQuery
28
+ });
29
+ module.exports = __toCommonJS(actions_exports);
30
+ var import_create_delete_action = require("./create-delete-action");
31
+ var import_create_get_action = require("./create-get-action");
32
+ var import_create_get_list_action = require("./create-get-list-action");
33
+ var import_create_post_action = require("./create-post-action");
34
+ var import_create_put_action = require("./create-put-action");
35
+ var import_get_list_query = require("./get-list-query");
36
+ // Annotate the CommonJS export names for ESM import in node:
37
+ 0 && (module.exports = {
38
+ createDeleteAction,
39
+ createGetAction,
40
+ createGetListAction,
41
+ createPostAction,
42
+ createPutAction,
43
+ getListQuery
44
+ });
@@ -0,0 +1 @@
1
+ export declare const transformBody: <T extends Record<string, unknown>>(body: T) => T;
@@ -0,0 +1,49 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/backend/sqlite/actions/transform-body.ts
30
+ var transform_body_exports = {};
31
+ __export(transform_body_exports, {
32
+ transformBody: () => transformBody
33
+ });
34
+ module.exports = __toCommonJS(transform_body_exports);
35
+ var import_dayjs = __toESM(require("dayjs"));
36
+ var transformBody = (body) => {
37
+ for (const key in body) {
38
+ if (key.endsWith("At")) {
39
+ body[key] = (0, import_dayjs.default)(
40
+ body[key]
41
+ ).toDate();
42
+ }
43
+ }
44
+ return body;
45
+ };
46
+ // Annotate the CommonJS export names for ESM import in node:
47
+ 0 && (module.exports = {
48
+ transformBody
49
+ });
@@ -0,0 +1,4 @@
1
+ export declare class HttpError extends Error {
2
+ status: number;
3
+ constructor(status: number, message: string);
4
+ }
@@ -0,0 +1,35 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/backend/sqlite/errors.ts
20
+ var errors_exports = {};
21
+ __export(errors_exports, {
22
+ HttpError: () => HttpError
23
+ });
24
+ module.exports = __toCommonJS(errors_exports);
25
+ var HttpError = class extends Error {
26
+ constructor(status, message) {
27
+ super(message);
28
+ this.name = "HttpError";
29
+ this.status = status;
30
+ }
31
+ };
32
+ // Annotate the CommonJS export names for ESM import in node:
33
+ 0 && (module.exports = {
34
+ HttpError
35
+ });
@@ -0,0 +1,5 @@
1
+ export * from "./actions/index.js";
2
+ export * from "./route-operation/index.js";
3
+ export * from "./schemas/index.js";
4
+ export * from "./errors.js";
5
+ export * from "./types.js";
@@ -0,0 +1,31 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/backend/sqlite/index.ts
17
+ var sqlite_exports = {};
18
+ module.exports = __toCommonJS(sqlite_exports);
19
+ __reExport(sqlite_exports, require("./actions"), module.exports);
20
+ __reExport(sqlite_exports, require("./route-operation"), module.exports);
21
+ __reExport(sqlite_exports, require("./schemas"), module.exports);
22
+ __reExport(sqlite_exports, require("./errors"), module.exports);
23
+ __reExport(sqlite_exports, require("./types"), module.exports);
24
+ // Annotate the CommonJS export names for ESM import in node:
25
+ 0 && (module.exports = {
26
+ ...require("./actions"),
27
+ ...require("./route-operation"),
28
+ ...require("./schemas"),
29
+ ...require("./errors"),
30
+ ...require("./types")
31
+ });
@@ -0,0 +1,11 @@
1
+ import { TypedNextResponse } from "next-rest-framework";
2
+ import { BaseTable } from "../types.js";
3
+ export interface DeleteOperationOptions<TTable extends BaseTable> {
4
+ table?: TTable;
5
+ summary?: string;
6
+ tags?: string[];
7
+ onSuccess?: () => Promise<void>;
8
+ onError?: (_error: Error) => Promise<ReturnType<(typeof TypedNextResponse)["json"]> | undefined>;
9
+ byCreator?: boolean;
10
+ }
11
+ export declare const createDeleteOperation: any;
@@ -0,0 +1,92 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/backend/sqlite/route-operation/delete-operation.ts
30
+ var delete_operation_exports = {};
31
+ __export(delete_operation_exports, {
32
+ createDeleteOperation: () => createDeleteOperation
33
+ });
34
+ module.exports = __toCommonJS(delete_operation_exports);
35
+ var import_next_rest_framework = require("next-rest-framework");
36
+ var import_zod = require("zod");
37
+ var import_get_table_name = __toESM(require("./get-table-name"));
38
+ var import_actions = require("../actions");
39
+ var import_errors = require("../errors");
40
+ var createDeleteOperation = ({
41
+ db,
42
+ getSession
43
+ }) => ({
44
+ table,
45
+ summary,
46
+ tags,
47
+ onSuccess,
48
+ onError,
49
+ byCreator = true
50
+ }) => (0, import_next_rest_framework.routeOperation)({
51
+ method: "DELETE",
52
+ openApiOperation: {
53
+ summary,
54
+ tags: tags ?? (table ? [(0, import_get_table_name.default)(table)] : [])
55
+ }
56
+ }).input({
57
+ body: import_zod.z.object({
58
+ id: import_zod.z.string()
59
+ }),
60
+ contentType: "application/json"
61
+ }).handler(async (req) => {
62
+ try {
63
+ const body = await req.json();
64
+ if (byCreator) {
65
+ const { userId } = await getSession(req) || {};
66
+ body.creatorId = userId;
67
+ }
68
+ const data = table ? await (0, import_actions.createDeleteAction)({ table, db })(body) : body;
69
+ await (onSuccess == null ? void 0 : onSuccess());
70
+ return import_next_rest_framework.TypedNextResponse.json(data, {
71
+ status: 200
72
+ });
73
+ } catch (e) {
74
+ if (!(e instanceof import_errors.HttpError)) {
75
+ console.error(e);
76
+ }
77
+ const response = await (onError == null ? void 0 : onError(e));
78
+ if (response) {
79
+ return response;
80
+ }
81
+ if (e instanceof import_errors.HttpError) {
82
+ return import_next_rest_framework.TypedNextResponse.json({ message: e.message }, {
83
+ status: e.status
84
+ });
85
+ }
86
+ throw e;
87
+ }
88
+ });
89
+ // Annotate the CommonJS export names for ESM import in node:
90
+ 0 && (module.exports = {
91
+ createDeleteOperation
92
+ });
@@ -0,0 +1,23 @@
1
+ import { z, ZodSchema } from "zod";
2
+ import { TypedNextRequest, TypedNextResponse } from "next-rest-framework";
3
+ import { BaseTable, GetListRelations } from "../types.js";
4
+ export interface GetListOperationOptions<T extends ZodSchema, Q extends ZodSchema, TTable extends BaseTable> {
5
+ bodySchema: T;
6
+ jsonArrayFields?: string[];
7
+ querySchema: Q;
8
+ relations?: GetListRelations;
9
+ setParams?: (_req: TypedNextRequest<"GET", "application/json", unknown, z.infer<Q>>) => Promise<Record<string, unknown>>;
10
+ byCreator?: boolean;
11
+ summary?: string;
12
+ tags?: string[];
13
+ table?: TTable;
14
+ onSuccess?: <D extends T>(_data: {
15
+ data: z.infer<D>[];
16
+ total: number;
17
+ }) => Promise<{
18
+ data: z.infer<T>[];
19
+ total: number;
20
+ }>;
21
+ onError?: (_error: Error) => Promise<ReturnType<(typeof TypedNextResponse)["json"]> | undefined>;
22
+ }
23
+ export declare const createGetListOperation: any;
@@ -0,0 +1,108 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/backend/sqlite/route-operation/get-list-operation.ts
30
+ var get_list_operation_exports = {};
31
+ __export(get_list_operation_exports, {
32
+ createGetListOperation: () => createGetListOperation
33
+ });
34
+ module.exports = __toCommonJS(get_list_operation_exports);
35
+ var import_next_rest_framework = require("next-rest-framework");
36
+ var import_get_table_name = __toESM(require("./get-table-name"));
37
+ var import_schemas = require("../schemas");
38
+ var import_actions = require("../actions");
39
+ var createGetListOperation = ({
40
+ db,
41
+ getSession
42
+ }) => ({
43
+ querySchema,
44
+ bodySchema,
45
+ table,
46
+ summary,
47
+ tags,
48
+ relations,
49
+ jsonArrayFields,
50
+ setParams,
51
+ onSuccess,
52
+ onError,
53
+ byCreator = true
54
+ }) => (0, import_next_rest_framework.routeOperation)({
55
+ method: "GET",
56
+ openApiOperation: {
57
+ summary,
58
+ tags: tags ?? (table ? [(0, import_get_table_name.default)(table)] : [])
59
+ }
60
+ }).input({
61
+ query: querySchema
62
+ }).outputs([
63
+ {
64
+ body: (0, import_schemas.listBodySchema)(bodySchema),
65
+ contentType: "application/json",
66
+ status: 200
67
+ }
68
+ ]).handler(async (req) => {
69
+ try {
70
+ const params = await (setParams == null ? void 0 : setParams(
71
+ req
72
+ )) || {};
73
+ if (byCreator) {
74
+ const { userId } = await getSession(req) || {};
75
+ params.creatorId = userId;
76
+ }
77
+ const mergedParams = Object.assign(
78
+ Object.fromEntries(new URL(req.url).searchParams),
79
+ params
80
+ );
81
+ let result = table ? await (0, import_actions.createGetListAction)({
82
+ bodySchema,
83
+ db,
84
+ jsonArrayFields,
85
+ relations,
86
+ table
87
+ })(mergedParams) : { data: [], total: 0 };
88
+ if (onSuccess) {
89
+ result = await onSuccess(result);
90
+ }
91
+ return import_next_rest_framework.TypedNextResponse.json(
92
+ result,
93
+ { status: 200 }
94
+ );
95
+ } catch (e) {
96
+ console.error(e);
97
+ const response = await (onError == null ? void 0 : onError(e));
98
+ if (response) {
99
+ return response;
100
+ } else {
101
+ throw e;
102
+ }
103
+ }
104
+ });
105
+ // Annotate the CommonJS export names for ESM import in node:
106
+ 0 && (module.exports = {
107
+ createGetListOperation
108
+ });
@@ -0,0 +1,17 @@
1
+ import { z, ZodSchema } from "zod";
2
+ import { TypedNextRequest, TypedNextResponse } from "next-rest-framework";
3
+ import { BaseTable, GetListRelations } from "../types.js";
4
+ export interface GetOperationOptions<T extends ZodSchema, Q extends ZodSchema, TTable extends BaseTable> {
5
+ bodySchema: T;
6
+ jsonArrayFields?: string[];
7
+ querySchema: Q;
8
+ relations?: GetListRelations;
9
+ setParams?: (_req: TypedNextRequest<"GET", "application/json", unknown, z.infer<Q>>) => Promise<Record<string, unknown>>;
10
+ onSuccess?: (_data: z.infer<T>) => Promise<z.infer<T>>;
11
+ onError?: (_error: Error) => Promise<ReturnType<(typeof TypedNextResponse)["json"]> | undefined>;
12
+ summary?: string;
13
+ tags?: string[];
14
+ table?: TTable;
15
+ byCreator?: boolean;
16
+ }
17
+ export declare const createGetOperation: any;