@tailor-platform/create-sdk 2.4.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/index.js +2 -1
  3. package/package.json +4 -4
  4. package/templates/executor/.oxlintrc.json +4 -1
  5. package/templates/executor/package.json +4 -5
  6. package/templates/executor/src/db/notification.ts +1 -1
  7. package/templates/generators/.oxfmtrc.json +1 -1
  8. package/templates/generators/.oxlintrc.json +4 -1
  9. package/templates/generators/package.json +5 -6
  10. package/templates/generators/src/db/category.ts +1 -1
  11. package/templates/generators/src/db/order.ts +2 -2
  12. package/templates/generators/src/db/product.ts +1 -1
  13. package/templates/hello-world/.oxlintrc.json +4 -1
  14. package/templates/hello-world/package.json +4 -5
  15. package/templates/inventory-management/.oxlintrc.json +4 -1
  16. package/templates/inventory-management/package.json +4 -5
  17. package/templates/inventory-management/src/db/inventory.ts +1 -1
  18. package/templates/inventory-management/src/db/order.ts +1 -1
  19. package/templates/inventory-management/src/db/orderItem.ts +2 -2
  20. package/templates/inventory-management/src/db/product.ts +1 -1
  21. package/templates/multi-application/.oxlintrc.json +4 -1
  22. package/templates/multi-application/package.json +4 -5
  23. package/templates/resolver/.oxlintrc.json +4 -1
  24. package/templates/resolver/package.json +4 -5
  25. package/templates/static-web-site/.oxlintrc.json +4 -1
  26. package/templates/static-web-site/package.json +4 -5
  27. package/templates/tailordb/.oxlintrc.json +4 -1
  28. package/templates/tailordb/package.json +4 -5
  29. package/templates/tailordb/src/db/category.ts +1 -1
  30. package/templates/tailordb/src/db/comment.ts +2 -2
  31. package/templates/tailordb/src/db/task.ts +2 -2
  32. package/templates/workflow/.oxlintrc.json +4 -1
  33. package/templates/workflow/package.json +4 -5
  34. package/templates/generators/.prettierignore +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @tailor-platform/create-sdk
2
2
 
3
+ ## 2.6.0
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2136](https://github.com/tailor-platform/sdk/pull/2136) [`6fba096`](https://github.com/tailor-platform/sdk/commit/6fba09676fc20e08e3325c26c0e72dc9ed4fd8f6) Thanks [@toiroakr](https://github.com/toiroakr)! - Update scaffolded project templates to use `.relation()`'s `toward.table` option instead of the deprecated `toward.type`.
8
+
9
+ - [#2160](https://github.com/tailor-platform/sdk/pull/2160) [`3cbfdc9`](https://github.com/tailor-platform/sdk/commit/3cbfdc99db5012f84dde6ab8f26dce8565834e97) Thanks [@dqn](https://github.com/dqn)! - Reject duplicate value imports in newly generated projects while preserving separate type imports and loader query semantics.
10
+
11
+ ## 2.5.0
12
+
13
+ ### Patch Changes
14
+
15
+ - [#2125](https://github.com/tailor-platform/sdk/pull/2125) [`17f449b`](https://github.com/tailor-platform/sdk/commit/17f449bac29a78d5a6084260a73a39c10b47e05e) Thanks [@dqn](https://github.com/dqn)! - Keep generated seed data excluded from Oxfmt in newly created projects.
16
+
17
+ - [#2107](https://github.com/tailor-platform/sdk/pull/2107) [`ff35c1e`](https://github.com/tailor-platform/sdk/commit/ff35c1e0f3ac0ce0db0b7fc6d9fde4ff1dc854f6) Thanks [@dqn](https://github.com/dqn)! - Internal error-handling and prompt-flow cleanups surfaced by newly enabled async-correctness lint rules; no behavior change.
18
+
3
19
  ## 2.4.0
4
20
 
5
21
  ### Patch Changes
package/dist/index.js CHANGED
@@ -36,7 +36,8 @@ const validateTemplate = async (template) => {
36
36
  const availables = await availableTemplates();
37
37
  if (!availables.includes(template)) return `Template "${template}" is not available. Available templates are: ${availables.join(", ")}.`;
38
38
  };
39
- const collectContext = async ({ name, template }) => {
39
+ const collectContext = async (opts) => {
40
+ let { name, template } = opts;
40
41
  if (name) {
41
42
  const err = validateName(name);
42
43
  if (err) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tailor-platform/create-sdk",
3
- "version": "2.4.0",
3
+ "version": "2.6.0",
4
4
  "description": "A CLI tool to quickly create a new Tailor Platform SDK project",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -21,13 +21,13 @@
21
21
  "execa": "10.0.1",
22
22
  "picocolors": "1.1.1",
23
23
  "pkg-types": "2.3.1",
24
- "politty": "0.11.6",
24
+ "politty": "0.11.9",
25
25
  "zod": "4.4.3"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "24.13.3",
29
29
  "eslint-plugin-zod": "4.9.1",
30
- "oxlint": "1.76.0",
30
+ "oxlint": "1.78.0",
31
31
  "oxlint-tsgolint": "7.0.2001",
32
32
  "tsdown": "0.22.14",
33
33
  "typescript": "6.0.3"
@@ -36,8 +36,8 @@
36
36
  "build": "tsdown",
37
37
  "lint": "oxlint --type-aware . --ignore-pattern \"templates/**\"",
38
38
  "lint:fix": "oxlint --type-aware . --ignore-pattern \"templates/**\" --fix",
39
+ "knip": "knip",
39
40
  "typecheck": "tsc --noEmit",
40
- "prepublish": "node scripts/prepare-templates.js && pnpm run build",
41
41
  "publint": "publint --strict"
42
42
  },
43
43
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./node_modules/oxlint/configuration_schema.json",
3
- "plugins": ["typescript"],
3
+ "plugins": ["typescript", "import"],
4
4
  "jsPlugins": [
5
5
  {
6
6
  "name": "tailor-sdk",
@@ -18,6 +18,9 @@
18
18
  "tailor-sdk/no-api-prefix-in-path-pattern": "warn",
19
19
  "tailor-sdk/no-execute-script-arg-stringify": "warn",
20
20
  "tailor-sdk/no-unconditional-permit": "warn",
21
+ "import/default": "off",
22
+ "import/namespace": "off",
23
+ "import/no-duplicates": ["error", { "considerQueryString": true }],
21
24
  "no-case-declarations": "error",
22
25
  "no-empty": "error",
23
26
  "no-fallthrough": "error",
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "executor",
3
- "version": "0.0.0",
4
3
  "private": true,
5
4
  "type": "module",
6
5
  "scripts": {
@@ -15,11 +14,11 @@
15
14
  "typecheck": "tsc --noEmit"
16
15
  },
17
16
  "devDependencies": {
18
- "@tailor-platform/eslint-plugin-sdk": "0.2.2",
19
- "@tailor-platform/sdk": "2.4.0",
17
+ "@tailor-platform/eslint-plugin-sdk": "0.2.3",
18
+ "@tailor-platform/sdk": "2.6.0",
20
19
  "@types/node": "24.13.3",
21
- "oxfmt": "0.61.0",
22
- "oxlint": "1.76.0",
20
+ "oxfmt": "0.63.0",
21
+ "oxlint": "1.78.0",
23
22
  "oxlint-tsgolint": "7.0.2001",
24
23
  "typescript": "6.0.3",
25
24
  "vitest": "4.1.10"
@@ -5,7 +5,7 @@ export const notification = db
5
5
  .table("Notification", {
6
6
  userId: db.uuid().relation({
7
7
  type: "n-1",
8
- toward: { type: user },
8
+ toward: { table: user },
9
9
  }),
10
10
  title: db.string(),
11
11
  body: db.string(),
@@ -1,3 +1,3 @@
1
1
  {
2
- "ignorePatterns": ["src/generated/", "pnpm-lock.yaml"]
2
+ "ignorePatterns": ["src/generated/", "src/seed/", "pnpm-lock.yaml"]
3
3
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./node_modules/oxlint/configuration_schema.json",
3
- "plugins": ["typescript"],
3
+ "plugins": ["typescript", "import"],
4
4
  "jsPlugins": [
5
5
  {
6
6
  "name": "tailor-sdk",
@@ -18,6 +18,9 @@
18
18
  "tailor-sdk/no-api-prefix-in-path-pattern": "warn",
19
19
  "tailor-sdk/no-execute-script-arg-stringify": "warn",
20
20
  "tailor-sdk/no-unconditional-permit": "warn",
21
+ "import/default": "off",
22
+ "import/namespace": "off",
23
+ "import/no-duplicates": ["error", { "considerQueryString": true }],
21
24
  "no-case-declarations": "error",
22
25
  "no-empty": "error",
23
26
  "no-fallthrough": "error",
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "generators",
3
- "version": "0.0.0",
4
3
  "private": true,
5
4
  "type": "module",
6
5
  "scripts": {
@@ -18,12 +17,12 @@
18
17
  "typecheck": "tsc --noEmit"
19
18
  },
20
19
  "devDependencies": {
21
- "@tailor-platform/eslint-plugin-sdk": "0.2.2",
22
- "@tailor-platform/sdk": "2.4.0",
23
- "@tailor-platform/sdk-plugin-seed": "0.2.2",
20
+ "@tailor-platform/eslint-plugin-sdk": "0.2.3",
21
+ "@tailor-platform/sdk": "2.6.0",
22
+ "@tailor-platform/sdk-plugin-seed": "0.2.4",
24
23
  "@types/node": "24.13.3",
25
- "oxfmt": "0.61.0",
26
- "oxlint": "1.76.0",
24
+ "oxfmt": "0.63.0",
25
+ "oxlint": "1.78.0",
27
26
  "oxlint-tsgolint": "7.0.2001",
28
27
  "typescript": "6.0.3",
29
28
  "vitest": "4.1.10"
@@ -6,7 +6,7 @@ export const category = db
6
6
  slug: db.string().unique(),
7
7
  parentCategoryId: db.uuid({ optional: true }).relation({
8
8
  type: "n-1",
9
- toward: { type: "self" },
9
+ toward: { table: "self" },
10
10
  backward: "children",
11
11
  }),
12
12
  })
@@ -6,11 +6,11 @@ export const order = db
6
6
  .table("Order", {
7
7
  productId: db.uuid().relation({
8
8
  type: "n-1",
9
- toward: { type: product },
9
+ toward: { table: product },
10
10
  }),
11
11
  userId: db.uuid().relation({
12
12
  type: "n-1",
13
- toward: { type: user },
13
+ toward: { table: user },
14
14
  }),
15
15
  quantity: db.int(),
16
16
  totalPrice: db.float(),
@@ -13,7 +13,7 @@ export const product = db
13
13
  ]),
14
14
  categoryId: db.uuid({ optional: true }).relation({
15
15
  type: "n-1",
16
- toward: { type: category },
16
+ toward: { table: category },
17
17
  }),
18
18
  ...db.fields.timestamps(),
19
19
  })
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./node_modules/oxlint/configuration_schema.json",
3
- "plugins": ["typescript"],
3
+ "plugins": ["typescript", "import"],
4
4
  "jsPlugins": [
5
5
  {
6
6
  "name": "tailor-sdk",
@@ -18,6 +18,9 @@
18
18
  "tailor-sdk/no-api-prefix-in-path-pattern": "warn",
19
19
  "tailor-sdk/no-execute-script-arg-stringify": "warn",
20
20
  "tailor-sdk/no-unconditional-permit": "warn",
21
+ "import/default": "off",
22
+ "import/namespace": "off",
23
+ "import/no-duplicates": ["error", { "considerQueryString": true }],
21
24
  "no-case-declarations": "error",
22
25
  "no-empty": "error",
23
26
  "no-fallthrough": "error",
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "hello-world",
3
- "version": "0.0.0",
4
3
  "private": true,
5
4
  "type": "module",
6
5
  "scripts": {
@@ -13,11 +12,11 @@
13
12
  "typecheck": "tsc --noEmit"
14
13
  },
15
14
  "devDependencies": {
16
- "@tailor-platform/eslint-plugin-sdk": "0.2.2",
17
- "@tailor-platform/sdk": "2.4.0",
15
+ "@tailor-platform/eslint-plugin-sdk": "0.2.3",
16
+ "@tailor-platform/sdk": "2.6.0",
18
17
  "@types/node": "24.13.3",
19
- "oxfmt": "0.61.0",
20
- "oxlint": "1.76.0",
18
+ "oxfmt": "0.63.0",
19
+ "oxlint": "1.78.0",
21
20
  "oxlint-tsgolint": "7.0.2001",
22
21
  "typescript": "6.0.3"
23
22
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./node_modules/oxlint/configuration_schema.json",
3
- "plugins": ["typescript"],
3
+ "plugins": ["typescript", "import"],
4
4
  "jsPlugins": [
5
5
  {
6
6
  "name": "tailor-sdk",
@@ -18,6 +18,9 @@
18
18
  "tailor-sdk/no-api-prefix-in-path-pattern": "warn",
19
19
  "tailor-sdk/no-execute-script-arg-stringify": "warn",
20
20
  "tailor-sdk/no-unconditional-permit": "warn",
21
+ "import/default": "off",
22
+ "import/namespace": "off",
23
+ "import/no-duplicates": ["error", { "considerQueryString": true }],
21
24
  "no-case-declarations": "error",
22
25
  "no-empty": "error",
23
26
  "no-fallthrough": "error",
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "inventory-management",
3
- "version": "0.0.0",
4
3
  "private": true,
5
4
  "type": "module",
6
5
  "scripts": {
@@ -13,11 +12,11 @@
13
12
  "typecheck": "tsc --noEmit"
14
13
  },
15
14
  "devDependencies": {
16
- "@tailor-platform/eslint-plugin-sdk": "0.2.2",
17
- "@tailor-platform/sdk": "2.4.0",
15
+ "@tailor-platform/eslint-plugin-sdk": "0.2.3",
16
+ "@tailor-platform/sdk": "2.6.0",
18
17
  "@types/node": "24.13.3",
19
- "oxfmt": "0.61.0",
20
- "oxlint": "1.76.0",
18
+ "oxfmt": "0.63.0",
19
+ "oxlint": "1.78.0",
21
20
  "oxlint-tsgolint": "7.0.2001",
22
21
  "typescript": "6.0.3"
23
22
  }
@@ -7,7 +7,7 @@ export const inventory = db
7
7
  productId: db
8
8
  .uuid()
9
9
  .description("ID of the product")
10
- .relation({ type: "1-1", toward: { type: product } }),
10
+ .relation({ type: "1-1", toward: { table: product } }),
11
11
  quantity: db
12
12
  .int()
13
13
  .description("Quantity of the product in inventory")
@@ -11,7 +11,7 @@ export const order = db
11
11
  contactId: db
12
12
  .uuid()
13
13
  .description("Contact associated with the order")
14
- .relation({ type: "n-1", toward: { type: contact } }),
14
+ .relation({ type: "n-1", toward: { table: contact } }),
15
15
  ...db.fields.timestamps(),
16
16
  })
17
17
  .permission(permissionLoggedIn)
@@ -8,11 +8,11 @@ export const orderItem = db
8
8
  orderId: db
9
9
  .uuid()
10
10
  .description("ID of the order")
11
- .relation({ type: "n-1", toward: { type: order } }),
11
+ .relation({ type: "n-1", toward: { table: order } }),
12
12
  productId: db
13
13
  .uuid()
14
14
  .description("ID of the product")
15
- .relation({ type: "n-1", toward: { type: product } }),
15
+ .relation({ type: "n-1", toward: { table: product } }),
16
16
  quantity: db
17
17
  .int()
18
18
  .description("Quantity of the product")
@@ -9,7 +9,7 @@ export const product = db
9
9
  categoryId: db
10
10
  .uuid()
11
11
  .description("ID of the category the product belongs to")
12
- .relation({ type: "n-1", toward: { type: category } }),
12
+ .relation({ type: "n-1", toward: { table: category } }),
13
13
  ...db.fields.timestamps(),
14
14
  })
15
15
  .permission(permissionManager)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./node_modules/oxlint/configuration_schema.json",
3
- "plugins": ["typescript"],
3
+ "plugins": ["typescript", "import"],
4
4
  "jsPlugins": [
5
5
  {
6
6
  "name": "tailor-sdk",
@@ -18,6 +18,9 @@
18
18
  "tailor-sdk/no-api-prefix-in-path-pattern": "warn",
19
19
  "tailor-sdk/no-execute-script-arg-stringify": "warn",
20
20
  "tailor-sdk/no-unconditional-permit": "warn",
21
+ "import/default": "off",
22
+ "import/namespace": "off",
23
+ "import/no-duplicates": ["error", { "considerQueryString": true }],
21
24
  "no-case-declarations": "error",
22
25
  "no-empty": "error",
23
26
  "no-fallthrough": "error",
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "multi-application",
3
- "version": "0.0.0",
4
3
  "private": true,
5
4
  "type": "module",
6
5
  "scripts": {
@@ -14,11 +13,11 @@
14
13
  "typecheck": "tsc --noEmit"
15
14
  },
16
15
  "devDependencies": {
17
- "@tailor-platform/eslint-plugin-sdk": "0.2.2",
18
- "@tailor-platform/sdk": "2.4.0",
16
+ "@tailor-platform/eslint-plugin-sdk": "0.2.3",
17
+ "@tailor-platform/sdk": "2.6.0",
19
18
  "@types/node": "24.13.3",
20
- "oxfmt": "0.61.0",
21
- "oxlint": "1.76.0",
19
+ "oxfmt": "0.63.0",
20
+ "oxlint": "1.78.0",
22
21
  "oxlint-tsgolint": "7.0.2001",
23
22
  "typescript": "6.0.3"
24
23
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./node_modules/oxlint/configuration_schema.json",
3
- "plugins": ["typescript"],
3
+ "plugins": ["typescript", "import"],
4
4
  "jsPlugins": [
5
5
  {
6
6
  "name": "tailor-sdk",
@@ -18,6 +18,9 @@
18
18
  "tailor-sdk/no-api-prefix-in-path-pattern": "warn",
19
19
  "tailor-sdk/no-execute-script-arg-stringify": "warn",
20
20
  "tailor-sdk/no-unconditional-permit": "warn",
21
+ "import/default": "off",
22
+ "import/namespace": "off",
23
+ "import/no-duplicates": ["error", { "considerQueryString": true }],
21
24
  "no-case-declarations": "error",
22
25
  "no-empty": "error",
23
26
  "no-fallthrough": "error",
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "resolver",
3
- "version": "0.0.0",
4
3
  "private": true,
5
4
  "type": "module",
6
5
  "scripts": {
@@ -15,11 +14,11 @@
15
14
  "typecheck": "tsc --noEmit"
16
15
  },
17
16
  "devDependencies": {
18
- "@tailor-platform/eslint-plugin-sdk": "0.2.2",
19
- "@tailor-platform/sdk": "2.4.0",
17
+ "@tailor-platform/eslint-plugin-sdk": "0.2.3",
18
+ "@tailor-platform/sdk": "2.6.0",
20
19
  "@types/node": "24.13.3",
21
- "oxfmt": "0.61.0",
22
- "oxlint": "1.76.0",
20
+ "oxfmt": "0.63.0",
21
+ "oxlint": "1.78.0",
23
22
  "oxlint-tsgolint": "7.0.2001",
24
23
  "typescript": "6.0.3",
25
24
  "vitest": "4.1.10"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./node_modules/oxlint/configuration_schema.json",
3
- "plugins": ["typescript"],
3
+ "plugins": ["typescript", "import"],
4
4
  "jsPlugins": [
5
5
  {
6
6
  "name": "tailor-sdk",
@@ -18,6 +18,9 @@
18
18
  "tailor-sdk/no-api-prefix-in-path-pattern": "warn",
19
19
  "tailor-sdk/no-execute-script-arg-stringify": "warn",
20
20
  "tailor-sdk/no-unconditional-permit": "warn",
21
+ "import/default": "off",
22
+ "import/namespace": "off",
23
+ "import/no-duplicates": ["error", { "considerQueryString": true }],
21
24
  "no-case-declarations": "error",
22
25
  "no-empty": "error",
23
26
  "no-fallthrough": "error",
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "static-web-site",
3
- "version": "0.0.0",
4
3
  "private": true,
5
4
  "type": "module",
6
5
  "scripts": {
@@ -13,11 +12,11 @@
13
12
  "typecheck": "tsc --noEmit"
14
13
  },
15
14
  "devDependencies": {
16
- "@tailor-platform/eslint-plugin-sdk": "0.2.2",
17
- "@tailor-platform/sdk": "2.4.0",
15
+ "@tailor-platform/eslint-plugin-sdk": "0.2.3",
16
+ "@tailor-platform/sdk": "2.6.0",
18
17
  "@types/node": "24.13.3",
19
- "oxfmt": "0.61.0",
20
- "oxlint": "1.76.0",
18
+ "oxfmt": "0.63.0",
19
+ "oxlint": "1.78.0",
21
20
  "oxlint-tsgolint": "7.0.2001",
22
21
  "typescript": "6.0.3"
23
22
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./node_modules/oxlint/configuration_schema.json",
3
- "plugins": ["typescript"],
3
+ "plugins": ["typescript", "import"],
4
4
  "jsPlugins": [
5
5
  {
6
6
  "name": "tailor-sdk",
@@ -18,6 +18,9 @@
18
18
  "tailor-sdk/no-api-prefix-in-path-pattern": "warn",
19
19
  "tailor-sdk/no-execute-script-arg-stringify": "warn",
20
20
  "tailor-sdk/no-unconditional-permit": "warn",
21
+ "import/default": "off",
22
+ "import/namespace": "off",
23
+ "import/no-duplicates": ["error", { "considerQueryString": true }],
21
24
  "no-case-declarations": "error",
22
25
  "no-empty": "error",
23
26
  "no-fallthrough": "error",
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "tailordb",
3
- "version": "0.0.0",
4
3
  "private": true,
5
4
  "type": "module",
6
5
  "scripts": {
@@ -15,11 +14,11 @@
15
14
  "typecheck": "tsc --noEmit"
16
15
  },
17
16
  "devDependencies": {
18
- "@tailor-platform/eslint-plugin-sdk": "0.2.2",
19
- "@tailor-platform/sdk": "2.4.0",
17
+ "@tailor-platform/eslint-plugin-sdk": "0.2.3",
18
+ "@tailor-platform/sdk": "2.6.0",
20
19
  "@types/node": "24.13.3",
21
- "oxfmt": "0.61.0",
22
- "oxlint": "1.76.0",
20
+ "oxfmt": "0.63.0",
21
+ "oxlint": "1.78.0",
23
22
  "oxlint-tsgolint": "7.0.2001",
24
23
  "typescript": "6.0.3",
25
24
  "vitest": "4.1.10"
@@ -7,7 +7,7 @@ export const category = db
7
7
  description: db.string({ optional: true }),
8
8
  parentCategoryId: db.uuid({ optional: true }).relation({
9
9
  type: "n-1",
10
- toward: { type: "self" },
10
+ toward: { table: "self" },
11
11
  backward: "children",
12
12
  }),
13
13
  })
@@ -10,11 +10,11 @@ export const comment = db
10
10
  .validate(({ value }) => (value.length < 1 ? "Comment must not be empty" : undefined)),
11
11
  taskId: db.uuid().relation({
12
12
  type: "n-1",
13
- toward: { type: task },
13
+ toward: { table: task },
14
14
  }),
15
15
  authorId: db.uuid().relation({
16
16
  type: "n-1",
17
- toward: { type: user },
17
+ toward: { table: user },
18
18
  }),
19
19
  metadata: db.object({
20
20
  source: db.string().description("Where the comment was posted from"),
@@ -23,11 +23,11 @@ export const task = db
23
23
  dueDate: db.datetime({ optional: true }),
24
24
  assigneeId: db.uuid({ optional: true }).relation({
25
25
  type: "n-1",
26
- toward: { type: user },
26
+ toward: { table: user },
27
27
  }),
28
28
  categoryId: db.uuid({ optional: true }).relation({
29
29
  type: "n-1",
30
- toward: { type: category },
30
+ toward: { table: category },
31
31
  }),
32
32
  isArchived: db
33
33
  .bool()
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./node_modules/oxlint/configuration_schema.json",
3
- "plugins": ["typescript"],
3
+ "plugins": ["typescript", "import"],
4
4
  "jsPlugins": [
5
5
  {
6
6
  "name": "tailor-sdk",
@@ -18,6 +18,9 @@
18
18
  "tailor-sdk/no-api-prefix-in-path-pattern": "warn",
19
19
  "tailor-sdk/no-execute-script-arg-stringify": "warn",
20
20
  "tailor-sdk/no-unconditional-permit": "warn",
21
+ "import/default": "off",
22
+ "import/namespace": "off",
23
+ "import/no-duplicates": ["error", { "considerQueryString": true }],
21
24
  "no-case-declarations": "error",
22
25
  "no-empty": "error",
23
26
  "no-fallthrough": "error",
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "workflow",
3
- "version": "0.0.0",
4
3
  "private": true,
5
4
  "type": "module",
6
5
  "scripts": {
@@ -16,13 +15,13 @@
16
15
  "typecheck": "tsc --noEmit"
17
16
  },
18
17
  "devDependencies": {
19
- "@tailor-platform/eslint-plugin-sdk": "0.2.2",
20
- "@tailor-platform/sdk": "2.4.0",
18
+ "@tailor-platform/eslint-plugin-sdk": "0.2.3",
19
+ "@tailor-platform/sdk": "2.6.0",
21
20
  "@types/node": "24.13.3",
22
21
  "graphql": "17.0.2",
23
22
  "graphql-request": "7.4.0",
24
- "oxfmt": "0.61.0",
25
- "oxlint": "1.76.0",
23
+ "oxfmt": "0.63.0",
24
+ "oxlint": "1.78.0",
26
25
  "oxlint-tsgolint": "7.0.2001",
27
26
  "typescript": "6.0.3",
28
27
  "vitest": "4.1.10"
@@ -1 +0,0 @@
1
- src/seed/