target-supabase-sdk 0.1.7 → 0.1.8
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/dist/auth/auth.api.js +6 -6
- package/dist/auth/auth.api.js.map +1 -1
- package/dist/core.api.d.ts +46 -6
- package/dist/core.api.d.ts.map +1 -1
- package/dist/core.api.js +105 -97
- package/dist/core.api.js.map +1 -1
- package/dist/core.interface.d.ts +2 -1
- package/dist/core.interface.d.ts.map +1 -1
- package/dist/core.interface.js +1 -1
- package/dist/core.interface.js.map +1 -1
- package/dist/core.utils.d.ts +0 -2
- package/dist/core.utils.d.ts.map +1 -1
- package/dist/core.utils.js +0 -5
- package/dist/core.utils.js.map +1 -1
- package/dist/file-list/file-list.api.js +1 -1
- package/dist/file-list/file-list.api.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/list/list.interface.d.ts +2 -2
- package/dist/list/list.interface.d.ts.map +1 -1
- package/dist/node/node.api.d.ts +32 -0
- package/dist/node/node.api.d.ts.map +1 -0
- package/dist/node/node.api.js +137 -0
- package/dist/node/node.api.js.map +1 -0
- package/dist/node/node.interface.d.ts +28 -0
- package/dist/node/node.interface.d.ts.map +1 -0
- package/dist/node/node.interface.js +17 -0
- package/dist/node/node.interface.js.map +1 -0
- package/dist/question-list/question-list.api.js +1 -1
- package/dist/question-list/question-list.api.js.map +1 -1
- package/dist/repo/repo.interface.d.ts +20 -0
- package/dist/repo/repo.interface.d.ts.map +1 -0
- package/dist/repo/repo.interface.js +8 -0
- package/dist/repo/repo.interface.js.map +1 -0
- package/dist/review/review.api.js +5 -5
- package/dist/review/review.api.js.map +1 -1
- package/dist/task/task-node-manager.d.ts +1 -0
- package/dist/task/task-node-manager.d.ts.map +1 -0
- package/dist/task/task-node-manager.js +2 -0
- package/dist/task/task-node-manager.js.map +1 -0
- package/dist/task/task.api.d.ts +1 -0
- package/dist/task/task.api.d.ts.map +1 -0
- package/dist/task/task.api.js +2 -0
- package/dist/task/task.api.js.map +1 -0
- package/dist/task/task.interface.d.ts +49 -0
- package/dist/task/task.interface.d.ts.map +1 -0
- package/dist/task/task.interface.js +26 -0
- package/dist/task/task.interface.js.map +1 -0
- package/dist/task/task.utils.d.ts +1 -0
- package/dist/task/task.utils.d.ts.map +1 -0
- package/dist/task/task.utils.js +2 -0
- package/dist/task/task.utils.js.map +1 -0
- package/dist/word/word.api.d.ts +5 -5
- package/dist/word/word.api.d.ts.map +1 -1
- package/dist/word/word.api.js +1 -1
- package/dist/word/word.api.js.map +1 -1
- package/package.json +1 -1
- package/src/auth/auth.api.ts +6 -6
- package/src/core.api.ts +194 -117
- package/src/core.interface.ts +3 -1
- package/src/core.utils.ts +0 -6
- package/src/file-list/file-list.api.ts +1 -1
- package/src/index.ts +6 -0
- package/src/list/list.interface.ts +2 -2
- package/src/node/node.api.ts +161 -0
- package/src/node/node.interface.ts +32 -0
- package/src/question-list/question-list.api.ts +1 -1
- package/src/repo/repo.interface.ts +23 -0
- package/src/review/review.api.ts +5 -5
- package/src/task/task-node-manager.ts +0 -0
- package/src/task/task.api.ts +0 -0
- package/src/task/task.interface.ts +60 -0
- package/src/task/task.utils.ts +0 -0
- package/src/word/word.api.ts +6 -6
package/dist/auth/auth.api.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { supabase } from "..";
|
|
2
|
-
import {
|
|
2
|
+
import { generateResponse } from "../core.interface";
|
|
3
3
|
import { handleSupabaseError } from "../core.utils";
|
|
4
4
|
// 用户注册
|
|
5
5
|
export const registerUser = async ({ email, password }) => {
|
|
@@ -10,7 +10,7 @@ export const registerUser = async ({ email, password }) => {
|
|
|
10
10
|
if (error) {
|
|
11
11
|
handleSupabaseError("registerUser", error, "Registration failed. Please try again.");
|
|
12
12
|
}
|
|
13
|
-
return
|
|
13
|
+
return generateResponse.success(data);
|
|
14
14
|
};
|
|
15
15
|
// 用户登录
|
|
16
16
|
export const loginUser = async ({ email, password }) => {
|
|
@@ -21,7 +21,7 @@ export const loginUser = async ({ email, password }) => {
|
|
|
21
21
|
if (error) {
|
|
22
22
|
handleSupabaseError("loginUser", error, "Login failed. Please check your credentials.");
|
|
23
23
|
}
|
|
24
|
-
return
|
|
24
|
+
return generateResponse.success(data);
|
|
25
25
|
};
|
|
26
26
|
// 用户登出
|
|
27
27
|
export const logoutUser = async () => {
|
|
@@ -29,7 +29,7 @@ export const logoutUser = async () => {
|
|
|
29
29
|
if (error) {
|
|
30
30
|
handleSupabaseError("logoutUser", error, "Logout failed.");
|
|
31
31
|
}
|
|
32
|
-
return
|
|
32
|
+
return generateResponse.success();
|
|
33
33
|
};
|
|
34
34
|
// 获取当前用户
|
|
35
35
|
export const getCurrentUser = async () => {
|
|
@@ -37,7 +37,7 @@ export const getCurrentUser = async () => {
|
|
|
37
37
|
if (error) {
|
|
38
38
|
handleSupabaseError("getCurrentUser", error, "Failed to get current user.");
|
|
39
39
|
}
|
|
40
|
-
return
|
|
40
|
+
return generateResponse.success(user);
|
|
41
41
|
};
|
|
42
42
|
// 重置密码
|
|
43
43
|
export const resetPassword = async (email) => {
|
|
@@ -45,6 +45,6 @@ export const resetPassword = async (email) => {
|
|
|
45
45
|
if (error) {
|
|
46
46
|
handleSupabaseError("resetPassword", error, "Password reset request failed.");
|
|
47
47
|
}
|
|
48
|
-
return
|
|
48
|
+
return generateResponse.success();
|
|
49
49
|
};
|
|
50
50
|
//# sourceMappingURL=auth.api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.api.js","sourceRoot":"","sources":["../../src/auth/auth.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"auth.api.js","sourceRoot":"","sources":["../../src/auth/auth.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAoBpD,OAAO;AACP,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAmB,EAAE,EAAE;IACzE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,UAAW,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7D,KAAK;QACL,QAAQ;KACT,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACV,mBAAmB,CAAC,cAAc,EAAE,KAAK,EAAE,wCAAwC,CAAC,CAAC;IACvF,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,OAAO;AACP,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAgB,EAAE,EAAE;IACnE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,UAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACzE,KAAK;QACL,QAAQ;KACT,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACV,mBAAmB,CAAC,WAAW,EAAE,KAAK,EAAE,8CAA8C,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,OAAO;AACP,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;IACnC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,UAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAE5D,IAAI,KAAK,EAAE,CAAC;QACV,mBAAmB,CAAC,YAAY,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC,CAAC;AAEF,SAAS;AACT,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;IACvC,MAAM,EACJ,IAAI,EAAE,EAAE,IAAI,EAAE,EACd,KAAK,GACN,GAAG,MAAM,QAAQ,CAAC,UAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAE9C,IAAI,KAAK,EAAE,CAAC;QACV,mBAAmB,CAAC,gBAAgB,EAAE,KAAK,EAAE,6BAA6B,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,CAAc,IAAmB,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,OAAO;AACP,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IACnD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,UAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAE/E,IAAI,KAAK,EAAE,CAAC;QACV,mBAAmB,CAAC,eAAe,EAAE,KAAK,EAAE,gCAAgC,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC,CAAC"}
|
package/dist/core.api.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Target } from "./core.interface";
|
|
1
|
+
import { Target, TargetPayload } from "./core.interface";
|
|
2
2
|
import { BaseValidator } from "./core.utils";
|
|
3
3
|
import { PostgrestFilterBuilder } from "@supabase/postgrest-js";
|
|
4
4
|
export interface QueryFilter {
|
|
5
5
|
field: string;
|
|
6
|
-
operator: "eq";
|
|
6
|
+
operator: "eq" | "neq" | "in";
|
|
7
7
|
value: unknown;
|
|
8
8
|
}
|
|
9
9
|
export interface QueryOrderBy {
|
|
@@ -51,17 +51,57 @@ export interface PatchTargetPayload extends PostTargetPayload {
|
|
|
51
51
|
id: string;
|
|
52
52
|
}
|
|
53
53
|
export declare const patchTarget: ({ id, ...restPayload }: PatchTargetPayload) => Promise<import("./core.interface").SupabaseResponse<Target>>;
|
|
54
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Read-modify-write `target.details` with optional DB-level optimistic locking on UPDATE.
|
|
56
|
+
*
|
|
57
|
+
* Do not use application-layer pre-update validators (e.g. checking state after SELECT then
|
|
58
|
+
* UPDATE with only `id`). That pattern is not atomic and loses under concurrency. Pass expected
|
|
59
|
+
* row conditions via `optimisticLockFilterList` so they are applied on the UPDATE statement.
|
|
60
|
+
*/
|
|
61
|
+
export interface UpdateTargetDetailsParams<D> {
|
|
62
|
+
/** Target row id. */
|
|
55
63
|
id: string;
|
|
64
|
+
/**
|
|
65
|
+
* Computes new details from the row fetched immediately before UPDATE.
|
|
66
|
+
* Runs after SELECT; the write still relies on `optimisticLockFilterList` for atomic guards.
|
|
67
|
+
*/
|
|
56
68
|
updateFn: (existing: D) => D;
|
|
57
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Optional `target.extra` derived from existing details (written together with details).
|
|
71
|
+
*/
|
|
58
72
|
updateExtraFn?: (existing: D) => string;
|
|
59
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Optimistic lock conditions applied on UPDATE (not on the prior SELECT).
|
|
75
|
+
*
|
|
76
|
+
* Replaces the removed `beforeUpdateValidator`: validators ran in app code between read and
|
|
77
|
+
* write and could not prevent concurrent overwrites. These filters become part of the UPDATE
|
|
78
|
+
* WHERE clause (via `applyQueryFilters`), e.g. `{ field: "details->>status", operator: "eq", value: "TODO" }`.
|
|
79
|
+
*
|
|
80
|
+
* If no row matches after UPDATE, throws "Optimistic lock failed". Empty array = update by id only.
|
|
81
|
+
*/
|
|
82
|
+
optimisticLockFilterList?: QueryFilter[];
|
|
83
|
+
}
|
|
84
|
+
export declare const updateTargetDetails: <T, D>({ id, updateFn, updateExtraFn, optimisticLockFilterList, }: UpdateTargetDetailsParams<D>) => Promise<T>;
|
|
85
|
+
export declare const OPTIMISTIC_LOCK_FAILED_MESSAGE = "[updateTargetDetails] Optimistic lock failed: target no longer matches expected state.";
|
|
86
|
+
export declare const CREATE_TARGET_ALREADY_EXISTS_MESSAGE = "[createTarget] Target already exists";
|
|
87
|
+
export declare function isOptimisticLockError(error: unknown): boolean;
|
|
88
|
+
export declare function isCreateTargetAlreadyExistsError(error: unknown): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Create a `target` row with optional payload validation and optimistic redundancy checks.
|
|
91
|
+
*
|
|
92
|
+
* When `checkRedundancyFilterList` is set, uses insert-first + post-verify (not SELECT-before-INSERT).
|
|
93
|
+
* See `.cursor/skills/create-target-redundancy/SKILL.md`.
|
|
94
|
+
*/
|
|
60
95
|
export declare const createTarget: <T extends Target, P extends object>({ payload, validator, createFn, checkRedundancyFilterList, upsert, }: {
|
|
61
96
|
payload: P;
|
|
62
97
|
validator?: new () => BaseValidator<P>;
|
|
63
|
-
createFn: (validPayload: P) =>
|
|
98
|
+
createFn: (validPayload: P) => TargetPayload<T>;
|
|
99
|
+
/** Business-key filters; if another row matches after insert, conflict handling runs. */
|
|
64
100
|
checkRedundancyFilterList?: QueryFilter[];
|
|
101
|
+
/**
|
|
102
|
+
* @deprecated Not supported — ignored at runtime. Use domain patch APIs or future RPC upsert.
|
|
103
|
+
* Reserved for a later release; do not pass `true`.
|
|
104
|
+
*/
|
|
65
105
|
upsert?: boolean;
|
|
66
106
|
}) => Promise<import("./core.interface").SupabaseResponse<T>>;
|
|
67
107
|
export declare function validateWith<P extends object, V extends BaseValidator<P>>(ValidatorClass: new () => V): <R>(fn: (validPayload: P) => R) => (payload: P) => R;
|
package/dist/core.api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.api.d.ts","sourceRoot":"","sources":["../src/core.api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core.api.d.ts","sourceRoot":"","sources":["../src/core.api.ts"],"names":[],"mappings":"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"}
|
package/dist/core.api.js
CHANGED
|
@@ -1,87 +1,68 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createResponse } from "./core.interface";
|
|
1
|
+
import { generateResponse } from "./core.interface";
|
|
3
2
|
import { supabase } from ".";
|
|
4
3
|
import { BaseValidator, handleSupabaseError } from "./core.utils";
|
|
4
|
+
// biome-ignore lint/suspicious/noExplicitAny: PostgrestFilterBuilder is generic over schema
|
|
5
|
+
function applyQueryFilter(query, filter) {
|
|
6
|
+
switch (filter.operator) {
|
|
7
|
+
case "eq":
|
|
8
|
+
return query.eq(filter.field, filter.value);
|
|
9
|
+
case "neq":
|
|
10
|
+
return query.neq(filter.field, filter.value);
|
|
11
|
+
case "in":
|
|
12
|
+
return query.in(filter.field, filter.value);
|
|
13
|
+
default:
|
|
14
|
+
return query;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
// biome-ignore lint/suspicious/noExplicitAny: PostgrestFilterBuilder is generic over schema
|
|
18
|
+
function applyQueryFilters(query, filterList) {
|
|
19
|
+
return filterList.reduce((q, filter) => applyQueryFilter(q, filter), query);
|
|
20
|
+
}
|
|
5
21
|
export const getTarget = async ({ id, filterList }) => {
|
|
6
22
|
const query = filterList != null && filterList.length > 0
|
|
7
|
-
?
|
|
8
|
-
switch (filter.operator) {
|
|
9
|
-
case "eq":
|
|
10
|
-
return query.eq(filter.field, filter.value);
|
|
11
|
-
default:
|
|
12
|
-
return query;
|
|
13
|
-
}
|
|
14
|
-
}, supabase.client.from("target").select().eq("id", id))
|
|
23
|
+
? applyQueryFilters(supabase.client.from("target").select().eq("id", id), filterList)
|
|
15
24
|
: supabase.client.from("target").select().eq("id", id);
|
|
16
25
|
const { data, error } = await query.single();
|
|
17
26
|
if (error) {
|
|
18
27
|
handleSupabaseError("getTarget", error, "Failed to fetch target.");
|
|
19
28
|
}
|
|
20
|
-
return
|
|
29
|
+
return generateResponse.success(data);
|
|
21
30
|
};
|
|
22
31
|
export const getPossibleTarget = async ({ filterList }) => {
|
|
23
|
-
const query =
|
|
24
|
-
switch (filter.operator) {
|
|
25
|
-
case "eq":
|
|
26
|
-
return query.eq(filter.field, filter.value);
|
|
27
|
-
default:
|
|
28
|
-
return query;
|
|
29
|
-
}
|
|
30
|
-
}, supabase.client.from("target").select());
|
|
32
|
+
const query = applyQueryFilters(supabase.client.from("target").select(), filterList);
|
|
31
33
|
const { data, error } = await query.maybeSingle();
|
|
32
34
|
if (error) {
|
|
33
35
|
handleSupabaseError("getPossibleTarget", error, "Failed to fetch target.");
|
|
34
36
|
}
|
|
35
|
-
return
|
|
37
|
+
return generateResponse.success(data);
|
|
36
38
|
};
|
|
37
39
|
export const getTargetList = async ({ pageNum, pageSize, category, filterList = [], orderBy = { field: "created_at", ascending: false }, filterBuilder, }) => {
|
|
38
40
|
const query = filterBuilder ??
|
|
39
|
-
|
|
40
|
-
switch (filter.operator) {
|
|
41
|
-
case "eq":
|
|
42
|
-
return query.eq(filter.field, filter.value);
|
|
43
|
-
default:
|
|
44
|
-
return query;
|
|
45
|
-
}
|
|
46
|
-
}, supabase.client.from("target").select("*").eq("category", category));
|
|
41
|
+
applyQueryFilters(supabase.client.from("target").select("*").eq("category", category), filterList);
|
|
47
42
|
const { data, error } = await query
|
|
48
43
|
.order(orderBy.field, { ascending: orderBy.ascending })
|
|
49
44
|
.range(pageNum * pageSize, (pageNum + 1) * pageSize - 1);
|
|
50
45
|
if (error) {
|
|
51
46
|
handleSupabaseError("getTargetList", error, "Failed to fetch target list.");
|
|
52
47
|
}
|
|
53
|
-
return
|
|
48
|
+
return generateResponse.success(data);
|
|
54
49
|
};
|
|
55
50
|
export const getTargetTotalCount = async ({ category, filterList = [], filterBuilder, }) => {
|
|
56
51
|
const query = filterBuilder ??
|
|
57
|
-
|
|
58
|
-
switch (filter.operator) {
|
|
59
|
-
case "eq":
|
|
60
|
-
return query.eq(filter.field, filter.value);
|
|
61
|
-
default:
|
|
62
|
-
return query;
|
|
63
|
-
}
|
|
64
|
-
}, supabase.client
|
|
52
|
+
applyQueryFilters(supabase.client
|
|
65
53
|
.from("target")
|
|
66
|
-
.select("id", { count: "exact", head: true })
|
|
67
|
-
.eq("category", category));
|
|
54
|
+
.select("id", { count: "exact", head: true })
|
|
55
|
+
.eq("category", category), filterList);
|
|
68
56
|
const { count, error } = await query;
|
|
69
57
|
if (error) {
|
|
70
58
|
handleSupabaseError("getTargetTotalCount", error, "Failed to fetch target count.");
|
|
71
59
|
}
|
|
72
|
-
return
|
|
60
|
+
return generateResponse.success(count ?? 0);
|
|
73
61
|
};
|
|
74
62
|
export const deleteTarget = async ({ id, filterList }) => {
|
|
75
63
|
// Check whether the target exists given filterList
|
|
76
64
|
if (filterList != null && filterList.length > 0) {
|
|
77
|
-
const query =
|
|
78
|
-
switch (filter.operator) {
|
|
79
|
-
case "eq":
|
|
80
|
-
return query.eq(filter.field, filter.value);
|
|
81
|
-
default:
|
|
82
|
-
return query;
|
|
83
|
-
}
|
|
84
|
-
}, supabase.client.from("target").select().eq("id", id));
|
|
65
|
+
const query = applyQueryFilters(supabase.client.from("target").select().eq("id", id), filterList);
|
|
85
66
|
const { data: existingTarget, error: existingError } = await query.single();
|
|
86
67
|
if (existingError || existingTarget == null) {
|
|
87
68
|
const msg = `[deleteTarget] Cannot find the target ${id}`;
|
|
@@ -93,7 +74,7 @@ export const deleteTarget = async ({ id, filterList }) => {
|
|
|
93
74
|
if (error) {
|
|
94
75
|
handleSupabaseError("deleteTarget", error, `Failed to delete target ${id}.`);
|
|
95
76
|
}
|
|
96
|
-
return
|
|
77
|
+
return generateResponse.success();
|
|
97
78
|
};
|
|
98
79
|
class PostTargetPayloadValidator extends BaseValidator {
|
|
99
80
|
requiredFields = ["category", "name", "value", "tagList"];
|
|
@@ -101,7 +82,7 @@ class PostTargetPayloadValidator extends BaseValidator {
|
|
|
101
82
|
constructor() {
|
|
102
83
|
super();
|
|
103
84
|
// Add custom
|
|
104
|
-
this.
|
|
85
|
+
this.addCustomValidator((val) => {
|
|
105
86
|
return true;
|
|
106
87
|
});
|
|
107
88
|
}
|
|
@@ -116,7 +97,7 @@ export const postTarget = async (payload) => {
|
|
|
116
97
|
if (error) {
|
|
117
98
|
handleSupabaseError("postTarget", error, "Failed to create target.");
|
|
118
99
|
}
|
|
119
|
-
return
|
|
100
|
+
return generateResponse.success(data);
|
|
120
101
|
};
|
|
121
102
|
export const patchTarget = async ({ id, ...restPayload }) => {
|
|
122
103
|
const { data: currentData, error: fetchError } = await supabase.client.from("target").select().eq("id", id).single();
|
|
@@ -137,25 +118,23 @@ export const patchTarget = async ({ id, ...restPayload }) => {
|
|
|
137
118
|
if (error) {
|
|
138
119
|
handleSupabaseError("patchTarget", error, "Failed to update target.");
|
|
139
120
|
}
|
|
140
|
-
return
|
|
121
|
+
return generateResponse.success(data);
|
|
141
122
|
};
|
|
142
|
-
export const updateTargetDetails = async ({ id, updateFn,
|
|
123
|
+
export const updateTargetDetails = async ({ id, updateFn, updateExtraFn, optimisticLockFilterList = [], }) => {
|
|
143
124
|
const { data: currentData, error: fetchError } = await supabase.client
|
|
144
125
|
.from("target")
|
|
145
126
|
.select("details")
|
|
146
127
|
.eq("id", id)
|
|
147
128
|
.single();
|
|
129
|
+
if (fetchError) {
|
|
130
|
+
handleSupabaseError("updateTargetDetails", fetchError, "Failed to fetch target.");
|
|
131
|
+
}
|
|
148
132
|
if (!currentData) {
|
|
149
133
|
const msg = "[updateTargetDetails] Target NOT exists: " + id;
|
|
150
134
|
console.error(msg);
|
|
151
135
|
throw new Error(msg);
|
|
152
136
|
}
|
|
153
137
|
const currentDetails = currentData.details;
|
|
154
|
-
// Check before update
|
|
155
|
-
const validatorResult = beforeUpdateValidator(currentDetails);
|
|
156
|
-
if (validatorResult !== true) {
|
|
157
|
-
throw new Error("[updateTargetDetails] validation failed. " + validatorResult);
|
|
158
|
-
}
|
|
159
138
|
const updatedDetails = updateFn(currentDetails);
|
|
160
139
|
const updated = updateExtraFn == null
|
|
161
140
|
? {
|
|
@@ -165,55 +144,84 @@ export const updateTargetDetails = async ({ id, updateFn, beforeUpdateValidator
|
|
|
165
144
|
details: updatedDetails,
|
|
166
145
|
extra: updateExtraFn(currentDetails),
|
|
167
146
|
};
|
|
168
|
-
const
|
|
169
|
-
|
|
147
|
+
const updateQuery = applyQueryFilters(supabase.client.from("target").update(updated).eq("id", id), optimisticLockFilterList);
|
|
148
|
+
const { data, error } = await updateQuery.select().maybeSingle();
|
|
149
|
+
if (error) {
|
|
170
150
|
handleSupabaseError("updateTargetDetails", error, "Failed to update target details.");
|
|
151
|
+
}
|
|
152
|
+
if (!data) {
|
|
153
|
+
const msg = optimisticLockFilterList.length > 0
|
|
154
|
+
? OPTIMISTIC_LOCK_FAILED_MESSAGE
|
|
155
|
+
: "[updateTargetDetails] Target not found or was deleted.";
|
|
156
|
+
throw new Error(msg);
|
|
157
|
+
}
|
|
171
158
|
return data;
|
|
172
159
|
};
|
|
160
|
+
export const OPTIMISTIC_LOCK_FAILED_MESSAGE = "[updateTargetDetails] Optimistic lock failed: target no longer matches expected state.";
|
|
161
|
+
export const CREATE_TARGET_ALREADY_EXISTS_MESSAGE = "[createTarget] Target already exists";
|
|
162
|
+
const CREATE_TARGET_REDUNDANCY_MISMATCH_MESSAGE = "[createTarget] Inserted row does not match checkRedundancyFilterList; verify createFn aligns with filters.";
|
|
163
|
+
/** Max rows to fetch during post-verify — only need to detect one other match. */
|
|
164
|
+
const REDUNDANCY_VERIFY_ROW_LIMIT = 2;
|
|
165
|
+
export function isOptimisticLockError(error) {
|
|
166
|
+
return error instanceof Error && error.message === OPTIMISTIC_LOCK_FAILED_MESSAGE;
|
|
167
|
+
}
|
|
168
|
+
export function isCreateTargetAlreadyExistsError(error) {
|
|
169
|
+
return error instanceof Error && error.message === CREATE_TARGET_ALREADY_EXISTS_MESSAGE;
|
|
170
|
+
}
|
|
171
|
+
/** Roll back an optimistic insert when redundancy filters match other rows. */
|
|
172
|
+
async function rollbackCreateTargetInsert(id) {
|
|
173
|
+
const { error } = await supabase.client.from("target").delete().eq("id", id);
|
|
174
|
+
if (error) {
|
|
175
|
+
handleSupabaseError("createTarget", error, "Failed to rollback conflicting insert.");
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/** Roll back the new row and signal a redundancy conflict to the caller. */
|
|
179
|
+
function throwCreateTargetAlreadyExists(checkRedundancyFilterList) {
|
|
180
|
+
console.error(CREATE_TARGET_ALREADY_EXISTS_MESSAGE, checkRedundancyFilterList);
|
|
181
|
+
throw new Error(CREATE_TARGET_ALREADY_EXISTS_MESSAGE);
|
|
182
|
+
}
|
|
183
|
+
async function failCreateTargetRedundancy(selfId, checkRedundancyFilterList) {
|
|
184
|
+
await rollbackCreateTargetInsert(selfId);
|
|
185
|
+
return throwCreateTargetAlreadyExists(checkRedundancyFilterList);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Create a `target` row with optional payload validation and optimistic redundancy checks.
|
|
189
|
+
*
|
|
190
|
+
* When `checkRedundancyFilterList` is set, uses insert-first + post-verify (not SELECT-before-INSERT).
|
|
191
|
+
* See `.cursor/skills/create-target-redundancy/SKILL.md`.
|
|
192
|
+
*/
|
|
173
193
|
export const createTarget = async ({ payload, validator, createFn, checkRedundancyFilterList, upsert = false, }) => {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
// (Optional)Step 2: check redundancy
|
|
177
|
-
if (checkRedundancyFilterList != null && checkRedundancyFilterList.length > 0) {
|
|
178
|
-
const query = checkRedundancyFilterList.reduce((query, filter) => {
|
|
179
|
-
switch (filter.operator) {
|
|
180
|
-
case "eq":
|
|
181
|
-
return query.eq(filter.field, filter.value);
|
|
182
|
-
default:
|
|
183
|
-
return query;
|
|
184
|
-
}
|
|
185
|
-
}, supabase.client.from("target").select("id"));
|
|
186
|
-
const { data: existingTarget, error: existingError } = await query.maybeSingle();
|
|
187
|
-
if (existingError) {
|
|
188
|
-
handleSupabaseError("createTarget", existingError, "Failed to check target existence.");
|
|
189
|
-
}
|
|
190
|
-
if (existingTarget) {
|
|
191
|
-
if (upsert) {
|
|
192
|
-
const newTarget = createFn(validPayload);
|
|
193
|
-
const updated = pick(newTarget, ["category", "name", "value", "tagList", "extra", "details"]);
|
|
194
|
-
const { data, error } = await supabase.client
|
|
195
|
-
.from("target")
|
|
196
|
-
.update(updated)
|
|
197
|
-
.eq("id", existingTarget.id)
|
|
198
|
-
.select()
|
|
199
|
-
.single();
|
|
200
|
-
if (error) {
|
|
201
|
-
handleSupabaseError("createTarget", error, "Failed to update existing target.");
|
|
202
|
-
}
|
|
203
|
-
return createResponse.success(data);
|
|
204
|
-
}
|
|
205
|
-
const msg = "[createTarget] Target already exists";
|
|
206
|
-
console.error(msg, checkRedundancyFilterList);
|
|
207
|
-
throw new Error(msg);
|
|
208
|
-
}
|
|
194
|
+
if (upsert) {
|
|
195
|
+
console.warn("[createTarget] `upsert` is deprecated and has no effect.");
|
|
209
196
|
}
|
|
210
|
-
|
|
197
|
+
const validPayload = validator != null ? new validator().validate(payload) : payload;
|
|
211
198
|
const newTarget = createFn(validPayload);
|
|
199
|
+
const hasRedundancyCheck = checkRedundancyFilterList != null && checkRedundancyFilterList.length > 0;
|
|
200
|
+
// 1. Optimistic insert (see create-target-redundancy skill)
|
|
212
201
|
const { data, error } = await supabase.client.from("target").insert([newTarget]).select().single();
|
|
213
202
|
if (error) {
|
|
214
203
|
handleSupabaseError("createTarget", error, "Failed to create target.");
|
|
215
204
|
}
|
|
216
|
-
|
|
205
|
+
if (!hasRedundancyCheck) {
|
|
206
|
+
return generateResponse.success(data);
|
|
207
|
+
}
|
|
208
|
+
// 2. Post-verify: limit(2) — enough to detect one other row matching the business-key filters
|
|
209
|
+
const { data: matches, error: matchError } = await applyQueryFilters(supabase.client.from("target").select("id"), checkRedundancyFilterList).limit(REDUNDANCY_VERIFY_ROW_LIMIT);
|
|
210
|
+
if (matchError) {
|
|
211
|
+
handleSupabaseError("createTarget", matchError, "Failed to verify target redundancy.");
|
|
212
|
+
}
|
|
213
|
+
const selfId = data.id;
|
|
214
|
+
const rows = matches ?? [];
|
|
215
|
+
const selfMatchesFilters = rows.some((row) => row.id === selfId);
|
|
216
|
+
if (!selfMatchesFilters) {
|
|
217
|
+
console.warn(CREATE_TARGET_REDUNDANCY_MISMATCH_MESSAGE, checkRedundancyFilterList);
|
|
218
|
+
}
|
|
219
|
+
const hasOtherRow = rows.some((row) => row.id !== selfId);
|
|
220
|
+
// 3. No conflict — keep the inserted row; otherwise rollback and reject
|
|
221
|
+
if (!hasOtherRow) {
|
|
222
|
+
return generateResponse.success(data);
|
|
223
|
+
}
|
|
224
|
+
return failCreateTargetRedundancy(selfId, checkRedundancyFilterList);
|
|
217
225
|
};
|
|
218
226
|
export function validateWith(ValidatorClass) {
|
|
219
227
|
return (fn) => {
|
package/dist/core.api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.api.js","sourceRoot":"","sources":["../src/core.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"core.api.js","sourceRoot":"","sources":["../src/core.api.ts"],"names":[],"mappings":"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"}
|
package/dist/core.interface.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export interface Target {
|
|
|
9
9
|
details?: unknown;
|
|
10
10
|
created_at: string;
|
|
11
11
|
}
|
|
12
|
+
export type TargetPayload<T extends Target> = Omit<T, "id" | "created_at">;
|
|
12
13
|
export declare enum StatusCode {
|
|
13
14
|
SUCCESS = 200,
|
|
14
15
|
ERROR = 400
|
|
@@ -23,7 +24,7 @@ export interface SupabaseResponse<T = unknown> {
|
|
|
23
24
|
code?: string;
|
|
24
25
|
};
|
|
25
26
|
}
|
|
26
|
-
export declare const
|
|
27
|
+
export declare const generateResponse: {
|
|
27
28
|
success<T>(data?: T, message?: string): SupabaseResponse<T>;
|
|
28
29
|
error(message: string | {
|
|
29
30
|
key: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.interface.d.ts","sourceRoot":"","sources":["../src/core.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,oBAAY,UAAU;IACpB,OAAO,MAAM;IACb,KAAK,MAAM;CACZ;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO;IAC3C,WAAW,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"core.interface.d.ts","sourceRoot":"","sources":["../src/core.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC;AAE3E,oBAAY,UAAU;IACpB,OAAO,MAAM;IACb,KAAK,MAAM;CACZ;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO;IAC3C,WAAW,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,eAAO,MAAM,gBAAgB;YACnB,CAAC,SAAS,CAAC,YAAY,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC;mBAUhD,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,cAAc,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,eAC5E,UAAU,SAChB,MAAM,GACZ,gBAAgB;CA8BpB,CAAC"}
|
package/dist/core.interface.js
CHANGED
|
@@ -3,7 +3,7 @@ export var StatusCode;
|
|
|
3
3
|
StatusCode[StatusCode["SUCCESS"] = 200] = "SUCCESS";
|
|
4
4
|
StatusCode[StatusCode["ERROR"] = 400] = "ERROR";
|
|
5
5
|
})(StatusCode || (StatusCode = {}));
|
|
6
|
-
export const
|
|
6
|
+
export const generateResponse = {
|
|
7
7
|
success(data, message) {
|
|
8
8
|
return {
|
|
9
9
|
status_code: StatusCode.SUCCESS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.interface.js","sourceRoot":"","sources":["../src/core.interface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core.interface.js","sourceRoot":"","sources":["../src/core.interface.ts"],"names":[],"mappings":"AAeA,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,mDAAa,CAAA;IACb,+CAAW,CAAA;AACb,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAaD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO,CAAI,IAAQ,EAAE,OAAgB;QACnC,OAAO;YACL,WAAW,EAAE,UAAU,CAAC,OAAO;YAC/B,OAAO,EAAE,IAAI;YACb,OAAO;YACP,IAAI;SACL,CAAC;IACJ,CAAC;IAED,KAAK,CACH,OAAyF,EACzF,UAAuB,EACvB,IAAa;QAEb,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO;gBACL,WAAW,EAAE,UAAU,IAAI,UAAU,CAAC,KAAK;gBAC3C,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,OAAO;oBACP,IAAI;iBACL;aACF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,OAAO,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO;gBACL,WAAW,EAAE,UAAU,IAAI,UAAU,CAAC,KAAK;gBAC3C,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,OAAO,EAAE,cAAc,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,KAAK,EAAE;oBACtD,IAAI;iBACL;aACF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,WAAW,EAAE,UAAU,IAAI,UAAU,CAAC,KAAK;YAC3C,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,OAAO,EAAE,cAAc,OAAO,CAAC,GAAG,KAAK,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;gBAChE,IAAI;aACL;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
package/dist/core.utils.d.ts
CHANGED
|
@@ -10,8 +10,6 @@ export declare abstract class BaseValidator<T extends object> {
|
|
|
10
10
|
protected optionalFields: (keyof T)[];
|
|
11
11
|
protected ignoredFields: (keyof T)[];
|
|
12
12
|
protected customValidators: ((val: T) => true | string)[];
|
|
13
|
-
/** @deprecated -> addCustomValidator */
|
|
14
|
-
addValidator(validator: (val: T) => true | string): this;
|
|
15
13
|
addCustomValidator(validator: (val: T) => true | string): this;
|
|
16
14
|
protected validateField(field: keyof T, value: unknown): boolean;
|
|
17
15
|
validate: (val: T) => T;
|
package/dist/core.utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.utils.d.ts","sourceRoot":"","sources":["../src/core.utils.ts"],"names":[],"mappings":"AAEA,6FAA6F;AAC7F,wBAAgB,gBAAgB,IAAI,OAAO,CAU1C;AAED,wBAAgB,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAI/C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAQ/D;AAED,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAGlG;AAED,oCAAoC;AACpC,8BAAsB,aAAa,CAAC,CAAC,SAAS,MAAM;IAClD,SAAS,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAM;IAC3C,SAAS,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAM;IAC3C,SAAS,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAM;IAC1C,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,EAAE,CAAM;IAE/D,
|
|
1
|
+
{"version":3,"file":"core.utils.d.ts","sourceRoot":"","sources":["../src/core.utils.ts"],"names":[],"mappings":"AAEA,6FAA6F;AAC7F,wBAAgB,gBAAgB,IAAI,OAAO,CAU1C;AAED,wBAAgB,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAI/C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAQ/D;AAED,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAGlG;AAED,oCAAoC;AACpC,8BAAsB,aAAa,CAAC,CAAC,SAAS,MAAM;IAClD,SAAS,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAM;IAC3C,SAAS,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAM;IAC3C,SAAS,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAM;IAC1C,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,EAAE,CAAM;IAE/D,kBAAkB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM;IAKvD,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAKhE,QAAQ,QAAS,CAAC,KAAG,CAAC,CAoCpB;CACH"}
|
package/dist/core.utils.js
CHANGED
|
@@ -40,11 +40,6 @@ export class BaseValidator {
|
|
|
40
40
|
optionalFields = [];
|
|
41
41
|
ignoredFields = [];
|
|
42
42
|
customValidators = [];
|
|
43
|
-
/** @deprecated -> addCustomValidator */
|
|
44
|
-
addValidator(validator) {
|
|
45
|
-
this.customValidators.push(validator);
|
|
46
|
-
return this;
|
|
47
|
-
}
|
|
48
43
|
addCustomValidator(validator) {
|
|
49
44
|
this.customValidators.push(validator);
|
|
50
45
|
return this;
|
package/dist/core.utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.utils.js","sourceRoot":"","sources":["../src/core.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEzC,6FAA6F;AAC7F,MAAM,UAAU,gBAAgB;IAC9B,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAI,MAAM,CAAC,IAAgE,CAAC,GAAG,CAAC;QACzF,IAAI,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,aAAa;YAAE,OAAO,IAAI,CAAC;QAClE,IAAI,GAAG,EAAE,GAAG,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,KAAK,YAAY;YAAE,OAAO,KAAK,CAAC;IACrE,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;QAC5D,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IAC/C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAG,IAAe;IACvC,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,EAAc;IACvD,IAAI,CAAC,gBAAgB,EAAE;QAAE,OAAO;IAChC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,IAAI,CAAC;QACH,EAAE,EAAE,CAAC;IACP,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,KAAc,EAAE,aAAsB;IACzF,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,WAAW,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,OAAO,oBAAoB,CAAC,CAAC;AACpE,CAAC;AAED,oCAAoC;AACpC,MAAM,OAAgB,aAAa;IACvB,cAAc,GAAgB,EAAE,CAAC;IACjC,cAAc,GAAgB,EAAE,CAAC;IACjC,aAAa,GAAgB,EAAE,CAAC;IAChC,gBAAgB,GAAkC,EAAE,CAAC;IAE/D,
|
|
1
|
+
{"version":3,"file":"core.utils.js","sourceRoot":"","sources":["../src/core.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-list.api.js","sourceRoot":"","sources":["../../src/file-list/file-list.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAY,gBAAgB,EAAmB,MAAM,uBAAuB,CAAC;AAEpF,MAAM,OAAO,2BAA4B,SAAQ,aAAwC;IAC7E,cAAc,GAAwC,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACnG,cAAc,GAAwC,EAAE,CAAC;IAEnE;QACE,KAAK,EAAE,CAAC;QACR,aAAa;QACb,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"file-list.api.js","sourceRoot":"","sources":["../../src/file-list/file-list.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAY,gBAAgB,EAAmB,MAAM,uBAAuB,CAAC;AAEpF,MAAM,OAAO,2BAA4B,SAAQ,aAAwC;IAC7E,cAAc,GAAwC,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACnG,cAAc,GAAwC,EAAE,CAAC;IAEnE;QACE,KAAK,EAAE,CAAC;QACR,aAAa;QACb,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AASD,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,OAAkC,EAAE,EAAE;IAC7E,OAAO,YAAY,CAAsC;QACvD,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,2BAA2B;QACtC,yBAAyB,EAAE;YACzB;gBACE,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,gBAAgB,CAAC,SAAS;aAClC;YACD;gBACE,KAAK,EAAE,mBAAmB;gBAC1B,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,OAAO,CAAC,OAAO;aACvB;YACD;gBACE,KAAK,EAAE,sBAAsB;gBAC7B,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,OAAO,CAAC,UAAU;aAC1B;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,EAAE,EAAE;YACzB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,YAAY,CAAC;YACjE,MAAM,OAAO,GAAoB;gBAC/B,IAAI;gBACJ,OAAO;gBACP,OAAO;gBACP,UAAU;aACX,CAAC;YAEF,OAAO;gBACL,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,QAAQ,EAAE,gBAAgB,CAAC,SAAS;gBACpC,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,EAAE;gBACX,OAAO;aACR,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -35,4 +35,7 @@ export * from "./link/link.interface";
|
|
|
35
35
|
export * from "./link/link.api";
|
|
36
36
|
export * from "./list/list.interface";
|
|
37
37
|
export * from "./list/list.api";
|
|
38
|
+
export * from "./word/word.interface";
|
|
39
|
+
export * from "./task/task.interface";
|
|
40
|
+
export * from "./repo/repo.interface";
|
|
38
41
|
//# sourceMappingURL=index.d.ts.map
|