katanakit-js 3.0.0 → 3.0.1
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/README.md +8 -8
- package/dist/adapters/express/access.guard.d.ts.map +1 -1
- package/dist/adapters/express/access.guard.js +9 -1
- package/dist/adapters/express/access.guard.js.map +1 -1
- package/dist/adapters/express/router.d.ts +2 -1
- package/dist/adapters/express/router.d.ts.map +1 -1
- package/dist/adapters/express/router.js.map +1 -1
- package/dist/core/services/access.service.d.ts +3 -2
- package/dist/core/services/access.service.d.ts.map +1 -1
- package/dist/core/services/access.service.js +10 -5
- package/dist/core/services/access.service.js.map +1 -1
- package/dist/prisma/use-prisma.d.ts +0 -1
- package/dist/prisma/use-prisma.d.ts.map +1 -1
- package/dist/prisma/use-prisma.js +0 -1
- package/dist/prisma/use-prisma.js.map +1 -1
- package/package.json +16 -22
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ npm install katanakit-js
|
|
|
9
9
|
# or
|
|
10
10
|
bun add katanakit-js
|
|
11
11
|
# or
|
|
12
|
-
|
|
12
|
+
pnpm add katanakit-js
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
### CDN (ESM)
|
|
@@ -366,10 +366,10 @@ DATABASE_URL=
|
|
|
366
366
|
|
|
367
367
|
| Script | Starts |
|
|
368
368
|
|--------|--------|
|
|
369
|
-
| `
|
|
370
|
-
| `
|
|
371
|
-
| `
|
|
372
|
-
| `
|
|
369
|
+
| `pnpm assistant:dev` | REST assistant. Uses Prisma when `DATABASE_URL` is set. |
|
|
370
|
+
| `pnpm telegram:dev` | Telegram long polling. Requires `TELEGRAM_BOT_TOKEN`. |
|
|
371
|
+
| `pnpm whatsapp:dev` | WhatsApp webhook. Requires `WHATSAPP_*`. |
|
|
372
|
+
| `pnpm assistant:demo` | Demo in `examples/assistant/`. Set `KITT_CHANNEL=rest\|telegram\|whatsapp`. |
|
|
373
373
|
|
|
374
374
|
### REST
|
|
375
375
|
|
|
@@ -429,7 +429,7 @@ await useStartTelegramPolling();
|
|
|
429
429
|
2. Send `/newbot` — choose a name and a username.
|
|
430
430
|
3. Copy the token.
|
|
431
431
|
4. Set `TELEGRAM_BOT_TOKEN`.
|
|
432
|
-
5. Run `
|
|
432
|
+
5. Run `pnpm telegram:dev` (long polling, no public URL).
|
|
433
433
|
6. Optional webhook: expose HTTPS and call `useHandleTelegramUpdate(update)` on inbound updates.
|
|
434
434
|
|
|
435
435
|
### WhatsApp (Meta Cloud API)
|
|
@@ -452,7 +452,7 @@ useStartWhatsApp();
|
|
|
452
452
|
2. Add the WhatsApp product.
|
|
453
453
|
3. Copy the temporary or permanent token, the Phone number ID, and the **App Secret**.
|
|
454
454
|
4. Set `WHATSAPP_TOKEN`, `WHATSAPP_PHONE_NUMBER_ID`, `WHATSAPP_VERIFY_TOKEN`, and `WHATSAPP_APP_SECRET`.
|
|
455
|
-
5. Run `
|
|
455
|
+
5. Run `pnpm whatsapp:dev`.
|
|
456
456
|
6. Expose public HTTPS (Cloudflare Tunnel or ngrok) to `GET`/`POST` `/whatsapp/webhook`.
|
|
457
457
|
7. In Meta, set the webhook URL and verify token; subscribe to `messages`.
|
|
458
458
|
|
|
@@ -487,7 +487,7 @@ owns the database, run `prisma contract emit` then `prisma db init` in that app.
|
|
|
487
487
|
`readFile` on `knowledge-base.md` and `saveNote` to `notes.jsonl`.
|
|
488
488
|
|
|
489
489
|
```bash
|
|
490
|
-
|
|
490
|
+
pnpm assistant:demo
|
|
491
491
|
# KITT_CHANNEL=rest|telegram|whatsapp
|
|
492
492
|
```
|
|
493
493
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.guard.d.ts","sourceRoot":"","sources":["../../../src/adapters/express/access.guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,OAAO,EAAE,cAAc,EAAY,MAAM,SAAS,CAAC;AAG/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE5E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CACnC,UAAU,EAAE,gBAAgB,EAC5B,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,aAAa,GAAG,IAAI,GACxD,cAAc,
|
|
1
|
+
{"version":3,"file":"access.guard.d.ts","sourceRoot":"","sources":["../../../src/adapters/express/access.guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,OAAO,EAAE,cAAc,EAAY,MAAM,SAAS,CAAC;AAG/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE5E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CACnC,UAAU,EAAE,gBAAgB,EAC5B,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,aAAa,GAAG,IAAI,GACxD,cAAc,CAgChB"}
|
|
@@ -26,7 +26,15 @@ export function useRequireCapability(capability, resolveSubject) {
|
|
|
26
26
|
});
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
let allowed;
|
|
30
|
+
try {
|
|
31
|
+
allowed = useCan(subject, capability);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Malformed subject or unknown role: fail closed at the HTTP boundary.
|
|
35
|
+
allowed = false;
|
|
36
|
+
}
|
|
37
|
+
if (!allowed) {
|
|
30
38
|
response.status(403).json({
|
|
31
39
|
ok: false,
|
|
32
40
|
data: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.guard.js","sourceRoot":"","sources":["../../../src/adapters/express/access.guard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAG/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,oBAAoB,CACnC,UAA4B,EAC5B,cAA0D;IAE1D,OAAO,CAAC,OAAgB,EAAE,QAAkB,EAAE,IAAkB,EAAQ,EAAE;QACzE,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACzB,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,EAAE,GAAG,EAAE;aAC1D,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"access.guard.js","sourceRoot":"","sources":["../../../src/adapters/express/access.guard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAG/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,oBAAoB,CACnC,UAA4B,EAC5B,cAA0D;IAE1D,OAAO,CAAC,OAAgB,EAAE,QAAkB,EAAE,IAAkB,EAAQ,EAAE;QACzE,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACzB,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,EAAE,GAAG,EAAE;aAC1D,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAED,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACJ,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACR,uEAAuE;YACvE,OAAO,GAAG,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACzB,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,EAAE,OAAO,EAAE,uBAAuB,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;aACpE,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAED,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/adapters/express/router.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/adapters/express/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,MAAM,EAAE,MAAM,SAAS,CAAC;AAE9D,QAAA,MAAM,MAAM,EAAE,MAAiB,CAAC;AAehC,eAAe,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/adapters/express/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,MAAM,EAAE,MAAM,SAAS,CAAC;AAE9D,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/adapters/express/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,MAAM,EAAE,MAAM,SAAS,CAAC;AAE9D,MAAM,MAAM,GAAW,MAAM,EAAE,CAAC;AAEhC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAiB,EAAE,QAAkB,EAAE,EAAE;IACzD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,OAAgB,EAAE,QAAkB,EAAE,EAAE;IAC3D,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAiB,EAAE,QAAkB,EAAE,EAAE;IAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,eAAe,MAAM,CAAC"}
|
|
@@ -11,12 +11,13 @@ import type { AccessCapability, AccessRole, AccessRoleDefinition, AccessSubject
|
|
|
11
11
|
export declare function useCapabilitiesFor(role: AccessRole): AccessCapability[];
|
|
12
12
|
/**
|
|
13
13
|
* Registers (or replaces) a role definition. Use it to extend a built-in
|
|
14
|
-
* role's capabilities, e.g. grant `content:create` to `member`.
|
|
14
|
+
* role's capabilities, e.g. grant `content:create` to `member`. The definition
|
|
15
|
+
* is copied, so mutating the caller's object afterwards has no effect.
|
|
15
16
|
*/
|
|
16
17
|
export declare function useRegisterRole(definition: AccessRoleDefinition): void;
|
|
17
18
|
/** Restores the built-in role registry (mainly for tests). */
|
|
18
19
|
export declare function useResetRoles(): void;
|
|
19
|
-
/** Lists every registered role definition. */
|
|
20
|
+
/** Lists every registered role definition. Returns copies, not live state. */
|
|
20
21
|
export declare function useRoles(): AccessRoleDefinition[];
|
|
21
22
|
/** Exact role membership — no hierarchy involved. */
|
|
22
23
|
export declare function useHasRole(subject: AccessSubject, role: AccessRole): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/access.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,gBAAgB,EAChB,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"access.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/access.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,gBAAgB,EAChB,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,MAAM,sBAAsB,CAAC;AA8D9B;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,gBAAgB,EAAE,CAYvE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAEtE;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED,8EAA8E;AAC9E,wBAAgB,QAAQ,IAAI,oBAAoB,EAAE,CAEjD;AAED,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAE5E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAEpF"}
|
|
@@ -35,7 +35,11 @@ const DEFAULT_ROLES = [
|
|
|
35
35
|
},
|
|
36
36
|
{ slug: "member", label: "Member", capabilities: ["conversations:use"] },
|
|
37
37
|
{ slug: "guest", label: "Guest", capabilities: [] },
|
|
38
|
-
];
|
|
38
|
+
].map((role) => Object.freeze(useCopy(role)));
|
|
39
|
+
/** Copies a definition so callers never hold (or mutate) live registry state. */
|
|
40
|
+
function useCopy(definition) {
|
|
41
|
+
return { ...definition, capabilities: [...definition.capabilities] };
|
|
42
|
+
}
|
|
39
43
|
/** Active registry, keyed by role slug. Starts as the default set. */
|
|
40
44
|
const registry = new Map(DEFAULT_ROLES.map((role) => [role.slug, role]));
|
|
41
45
|
function useDefinitionFor(role) {
|
|
@@ -68,10 +72,11 @@ export function useCapabilitiesFor(role) {
|
|
|
68
72
|
}
|
|
69
73
|
/**
|
|
70
74
|
* Registers (or replaces) a role definition. Use it to extend a built-in
|
|
71
|
-
* role's capabilities, e.g. grant `content:create` to `member`.
|
|
75
|
+
* role's capabilities, e.g. grant `content:create` to `member`. The definition
|
|
76
|
+
* is copied, so mutating the caller's object afterwards has no effect.
|
|
72
77
|
*/
|
|
73
78
|
export function useRegisterRole(definition) {
|
|
74
|
-
registry.set(definition.slug, definition);
|
|
79
|
+
registry.set(definition.slug, Object.freeze(useCopy(definition)));
|
|
75
80
|
}
|
|
76
81
|
/** Restores the built-in role registry (mainly for tests). */
|
|
77
82
|
export function useResetRoles() {
|
|
@@ -80,9 +85,9 @@ export function useResetRoles() {
|
|
|
80
85
|
registry.set(role.slug, role);
|
|
81
86
|
}
|
|
82
87
|
}
|
|
83
|
-
/** Lists every registered role definition. */
|
|
88
|
+
/** Lists every registered role definition. Returns copies, not live state. */
|
|
84
89
|
export function useRoles() {
|
|
85
|
-
return [...registry.values()].sort((a, b) => ROLE_RANK[a.slug] - ROLE_RANK[b.slug]);
|
|
90
|
+
return [...registry.values()].sort((a, b) => ROLE_RANK[a.slug] - ROLE_RANK[b.slug]).map(useCopy);
|
|
86
91
|
}
|
|
87
92
|
/** Exact role membership — no hierarchy involved. */
|
|
88
93
|
export function useHasRole(subject, role) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.service.js","sourceRoot":"","sources":["../../../src/core/services/access.service.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,MAAM,SAAS,GAA+B;IAC7C,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;CACR,CAAC;AAEF;;;GAGG;AACH,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"access.service.js","sourceRoot":"","sources":["../../../src/core/services/access.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,5 +64,4 @@ import type { Contract } from "./schema.d.js";
|
|
|
64
64
|
* ```
|
|
65
65
|
*/
|
|
66
66
|
export declare function usePrismaClient(datasourceUrl?: string): ReturnType<typeof postgres<Contract>>;
|
|
67
|
-
export declare const prisma: import("@prisma/orm-postgres/runtime").PostgresClient<Contract>;
|
|
68
67
|
//# sourceMappingURL=use-prisma.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-prisma.d.ts","sourceRoot":"","sources":["../../src/prisma/use-prisma.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAM9C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAe7F
|
|
1
|
+
{"version":3,"file":"use-prisma.d.ts","sourceRoot":"","sources":["../../src/prisma/use-prisma.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAM9C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAe7F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-prisma.js","sourceRoot":"","sources":["../../src/prisma/use-prisma.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAGpD,OAAO,YAAY,MAAM,eAAe,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE/D,uCAAuC;AACvC,IAAI,MAAM,GAAiD,IAAI,CAAC;AAEhE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe,CAAC,aAAsB;IACrD,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACtD,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACd,wFAAwF,CACxF,CAAC;QACH,CAAC;QACD,MAAM,GAAG,QAAQ,CAAW;YAC3B,YAAY;YACZ,GAAG;SACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC
|
|
1
|
+
{"version":3,"file":"use-prisma.js","sourceRoot":"","sources":["../../src/prisma/use-prisma.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAGpD,OAAO,YAAY,MAAM,eAAe,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE/D,uCAAuC;AACvC,IAAI,MAAM,GAAiD,IAAI,CAAC;AAEhE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe,CAAC,aAAsB;IACrD,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACtD,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACd,wFAAwF,CACxF,CAAC;QACH,CAAC;QACD,MAAM,GAAG,QAAQ,CAAW;YAC3B,YAAY;YACZ,GAAG;SACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "katanakit-js",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "KatanaKit — a sharp, framework-agnostic TypeScript service toolkit organized with hexagonal architecture.",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"workspaces": [
|
|
7
|
-
"docs"
|
|
8
|
-
],
|
|
9
6
|
"main": "./dist/index.js",
|
|
10
7
|
"module": "./dist/index.js",
|
|
11
8
|
"types": "./dist/index.d.ts",
|
|
@@ -77,20 +74,21 @@
|
|
|
77
74
|
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
78
75
|
"check": "eslint ./src && tsc6 --noEmit && vitest run",
|
|
79
76
|
"fix": "eslint --fix ./src && tsc6 --noEmit && vitest run",
|
|
80
|
-
"build": "
|
|
81
|
-
"bump
|
|
82
|
-
"bump:
|
|
83
|
-
"bump:
|
|
84
|
-
"
|
|
85
|
-
"release
|
|
86
|
-
"release:
|
|
77
|
+
"build": "pnpm clean && pnpm run check && tsc6 -p tsconfig.json",
|
|
78
|
+
"version:bump": "node scripts/bump-version.mjs",
|
|
79
|
+
"bump:patch": "node scripts/bump-version.mjs patch",
|
|
80
|
+
"bump:minor": "node scripts/bump-version.mjs minor",
|
|
81
|
+
"bump:major": "node scripts/bump-version.mjs major",
|
|
82
|
+
"release": "pnpm build && pnpm bump:patch && npm publish --access public && git push && git push --tags && node scripts/generate-release-notes.mjs \"v$(node -p \"require('./package.json').version\")\" | gh release create \"v$(node -p \"require('./package.json').version\")\" --notes-file -",
|
|
83
|
+
"release:minor": "pnpm build && pnpm bump:minor && npm publish --access public && git push && git push --tags && node scripts/generate-release-notes.mjs \"v$(node -p \"require('./package.json').version\")\" | gh release create \"v$(node -p \"require('./package.json').version\")\" --notes-file -",
|
|
84
|
+
"release:major": "pnpm build && pnpm bump:major && npm publish --access public && git push && git push --tags && node scripts/generate-release-notes.mjs \"v$(node -p \"require('./package.json').version\")\" | gh release create \"v$(node -p \"require('./package.json').version\")\" --notes-file -",
|
|
87
85
|
"notes": "node scripts/generate-release-notes.mjs",
|
|
88
|
-
"version:sync": "node -
|
|
89
|
-
"docs:dev": "
|
|
86
|
+
"version:sync": "node scripts/bump-version.mjs --sync",
|
|
87
|
+
"docs:dev": "pnpm --filter katanakit-docs dev",
|
|
90
88
|
"docs:sync": "node scripts/sync-docs-releases.mjs --limit=8",
|
|
91
89
|
"docs:check": "node scripts/sync-docs-releases.mjs --limit=8 --check",
|
|
92
|
-
"docs:build": "
|
|
93
|
-
"docs:serve": "
|
|
90
|
+
"docs:build": "pnpm docs:sync && pnpm --filter katanakit-docs build",
|
|
91
|
+
"docs:serve": "pnpm --filter katanakit-docs serve",
|
|
94
92
|
"prepare": "husky"
|
|
95
93
|
},
|
|
96
94
|
"repository": {
|
|
@@ -121,7 +119,8 @@
|
|
|
121
119
|
"jsdelivr": "./dist/index.js",
|
|
122
120
|
"dependencies": {
|
|
123
121
|
"@js-temporal/polyfill": "0.5.1",
|
|
124
|
-
"@prisma/orm-postgres": "8.0.0-rc.8"
|
|
122
|
+
"@prisma/orm-postgres": "8.0.0-rc.8",
|
|
123
|
+
"express-rate-limit": "8.7.0"
|
|
125
124
|
},
|
|
126
125
|
"peerDependencies": {
|
|
127
126
|
"cors": ">=2.8.0",
|
|
@@ -147,7 +146,6 @@
|
|
|
147
146
|
"@eslint/js": "^10.0.1",
|
|
148
147
|
"@types/cors": "2.8.19",
|
|
149
148
|
"@types/express": "5.0.6",
|
|
150
|
-
"@types/express-rate-limit": "6.0.2",
|
|
151
149
|
"@types/node": "26.5.0",
|
|
152
150
|
"cors": "2.8.6",
|
|
153
151
|
"dotenv": "17.4.2",
|
|
@@ -168,14 +166,10 @@
|
|
|
168
166
|
"vitest": "5.0.0",
|
|
169
167
|
"vue": "3.5.42"
|
|
170
168
|
},
|
|
171
|
-
"resolutions": {
|
|
172
|
-
"pathe": "2.0.3",
|
|
173
|
-
"jsbi": "4.3.2"
|
|
174
|
-
},
|
|
175
169
|
"lint-staged": {
|
|
176
170
|
"src/**/*.{ts,mts,cts}": [
|
|
177
171
|
"eslint --fix"
|
|
178
172
|
]
|
|
179
173
|
},
|
|
180
|
-
"packageManager": "
|
|
174
|
+
"packageManager": "pnpm@12.4.1"
|
|
181
175
|
}
|