@lssm/lib.jobs 0.0.0-canary-20251206160926

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 (120) hide show
  1. package/README.md +123 -0
  2. package/dist/contracts/dist/capabilities/openbanking.js +1 -0
  3. package/dist/contracts/dist/client/index.js +1 -0
  4. package/dist/contracts/dist/client/react/feature-render.js +1 -0
  5. package/dist/contracts/dist/client/react/form-render.js +1 -0
  6. package/dist/contracts/dist/client/react/index.js +1 -0
  7. package/dist/contracts/dist/events.js +1 -0
  8. package/dist/contracts/dist/experiments/evaluator.js +1 -0
  9. package/dist/contracts/dist/graphql-federation/dist/index.js +1 -0
  10. package/dist/contracts/dist/index.js +1 -0
  11. package/dist/contracts/dist/install.js +1 -0
  12. package/dist/contracts/dist/integrations/contracts.js +1 -0
  13. package/dist/contracts/dist/integrations/index.js +1 -0
  14. package/dist/contracts/dist/integrations/openbanking/contracts/accounts.js +1 -0
  15. package/dist/contracts/dist/integrations/openbanking/contracts/balances.js +1 -0
  16. package/dist/contracts/dist/integrations/openbanking/contracts/index.js +1 -0
  17. package/dist/contracts/dist/integrations/openbanking/contracts/transactions.js +1 -0
  18. package/dist/contracts/dist/integrations/openbanking/models.js +1 -0
  19. package/dist/contracts/dist/integrations/openbanking/telemetry.js +1 -0
  20. package/dist/contracts/dist/integrations/providers/elevenlabs.js +1 -0
  21. package/dist/contracts/dist/integrations/providers/gcs-storage.js +1 -0
  22. package/dist/contracts/dist/integrations/providers/gmail.js +1 -0
  23. package/dist/contracts/dist/integrations/providers/google-calendar.js +1 -0
  24. package/dist/contracts/dist/integrations/providers/impls/elevenlabs-voice.js +1 -0
  25. package/dist/contracts/dist/integrations/providers/impls/gcs-storage.js +1 -0
  26. package/dist/contracts/dist/integrations/providers/impls/gmail-inbound.js +1 -0
  27. package/dist/contracts/dist/integrations/providers/impls/gmail-outbound.js +1 -0
  28. package/dist/contracts/dist/integrations/providers/impls/google-calendar.js +1 -0
  29. package/dist/contracts/dist/integrations/providers/impls/index.js +1 -0
  30. package/dist/contracts/dist/integrations/providers/impls/mistral-embedding.js +1 -0
  31. package/dist/contracts/dist/integrations/providers/impls/mistral-llm.js +1 -0
  32. package/dist/contracts/dist/integrations/providers/impls/postmark-email.js +1 -0
  33. package/dist/contracts/dist/integrations/providers/impls/powens-client.js +1 -0
  34. package/dist/contracts/dist/integrations/providers/impls/powens-openbanking.js +1 -0
  35. package/dist/contracts/dist/integrations/providers/impls/provider-factory.js +1 -0
  36. package/dist/contracts/dist/integrations/providers/impls/qdrant-vector.js +1 -0
  37. package/dist/contracts/dist/integrations/providers/impls/stripe-payments.js +1 -0
  38. package/dist/contracts/dist/integrations/providers/impls/twilio-sms.js +1 -0
  39. package/dist/contracts/dist/integrations/providers/index.js +1 -0
  40. package/dist/contracts/dist/integrations/providers/mistral.js +1 -0
  41. package/dist/contracts/dist/integrations/providers/postmark.js +1 -0
  42. package/dist/contracts/dist/integrations/providers/powens.js +1 -0
  43. package/dist/contracts/dist/integrations/providers/qdrant.js +1 -0
  44. package/dist/contracts/dist/integrations/providers/stripe.js +1 -0
  45. package/dist/contracts/dist/integrations/providers/twilio-sms.js +1 -0
  46. package/dist/contracts/dist/integrations/runtime.js +1 -0
  47. package/dist/contracts/dist/integrations/secrets/env-secret-provider.js +1 -0
  48. package/dist/contracts/dist/integrations/secrets/gcp-secret-manager.js +1 -0
  49. package/dist/contracts/dist/integrations/secrets/index.js +1 -0
  50. package/dist/contracts/dist/integrations/secrets/manager.js +1 -0
  51. package/dist/contracts/dist/integrations/secrets/provider.js +1 -0
  52. package/dist/contracts/dist/jsonschema.js +1 -0
  53. package/dist/contracts/dist/knowledge/contracts.js +1 -0
  54. package/dist/contracts/dist/knowledge/index.js +1 -0
  55. package/dist/contracts/dist/knowledge/spaces/email-threads.js +1 -0
  56. package/dist/contracts/dist/knowledge/spaces/financial-docs.js +1 -0
  57. package/dist/contracts/dist/knowledge/spaces/financial-overview.js +1 -0
  58. package/dist/contracts/dist/knowledge/spaces/index.js +1 -0
  59. package/dist/contracts/dist/knowledge/spaces/product-canon.js +1 -0
  60. package/dist/contracts/dist/knowledge/spaces/support-faq.js +1 -0
  61. package/dist/contracts/dist/knowledge/spaces/uploaded-docs.js +1 -0
  62. package/dist/contracts/dist/onboarding-base.js +1 -0
  63. package/dist/contracts/dist/ownership.js +1 -0
  64. package/dist/contracts/dist/presentations.js +1 -0
  65. package/dist/contracts/dist/presentations.v2.js +1 -0
  66. package/dist/contracts/dist/prompt.js +1 -0
  67. package/dist/contracts/dist/promptRegistry.js +1 -0
  68. package/dist/contracts/dist/regenerator/index.js +1 -0
  69. package/dist/contracts/dist/regenerator/service.js +1 -0
  70. package/dist/contracts/dist/registry.js +1 -0
  71. package/dist/contracts/dist/resources.js +1 -0
  72. package/dist/contracts/dist/schema/dist/EnumType.js +1 -0
  73. package/dist/contracts/dist/schema/dist/FieldType.js +1 -0
  74. package/dist/contracts/dist/schema/dist/ScalarTypeEnum.js +1 -0
  75. package/dist/contracts/dist/schema/dist/SchemaModel.js +1 -0
  76. package/dist/contracts/dist/schema/dist/entity/defineEntity.js +1 -0
  77. package/dist/contracts/dist/schema/dist/entity/index.js +1 -0
  78. package/dist/contracts/dist/schema/dist/entity/types.js +1 -0
  79. package/dist/contracts/dist/schema/dist/index.js +1 -0
  80. package/dist/contracts/dist/server/graphql-pothos.js +1 -0
  81. package/dist/contracts/dist/server/graphql-schema-export.js +1 -0
  82. package/dist/contracts/dist/server/index.js +1 -0
  83. package/dist/contracts/dist/server/provider-mcp.js +1 -0
  84. package/dist/contracts/dist/server/rest-elysia.js +1 -0
  85. package/dist/contracts/dist/server/rest-express.js +1 -0
  86. package/dist/contracts/dist/server/rest-generic.js +1 -0
  87. package/dist/contracts/dist/server/rest-next-app.js +1 -0
  88. package/dist/contracts/dist/server/rest-next-pages.js +1 -0
  89. package/dist/contracts/dist/spec.js +1 -0
  90. package/dist/contracts/dist/telemetry/index.js +1 -0
  91. package/dist/contracts/dist/telemetry/tracker.js +1 -0
  92. package/dist/contracts/dist/tests/index.js +1 -0
  93. package/dist/contracts/dist/tests/runner.js +1 -0
  94. package/dist/contracts/dist/workflow/index.js +1 -0
  95. package/dist/contracts/dist/workflow/runner.js +1 -0
  96. package/dist/contracts/index.d.ts +546 -0
  97. package/dist/contracts/index.js +1 -0
  98. package/dist/entities/index.d.ts +144 -0
  99. package/dist/entities/index.js +1 -0
  100. package/dist/events.d.ts +387 -0
  101. package/dist/events.js +1 -0
  102. package/dist/index.d.ts +8 -0
  103. package/dist/index.js +1 -0
  104. package/dist/queue/index.d.ts +3 -0
  105. package/dist/queue/index.js +1 -0
  106. package/dist/queue/memory-queue.d.ts +34 -0
  107. package/dist/queue/memory-queue.js +1 -0
  108. package/dist/queue/types.d.ts +131 -0
  109. package/dist/queue/types.js +1 -0
  110. package/dist/scheduler/index.d.ts +92 -0
  111. package/dist/scheduler/index.js +1 -0
  112. package/dist/schema/dist/EnumType.js +1 -0
  113. package/dist/schema/dist/FieldType.js +1 -0
  114. package/dist/schema/dist/ScalarTypeEnum.js +1 -0
  115. package/dist/schema/dist/SchemaModel.js +1 -0
  116. package/dist/schema/dist/entity/defineEntity.js +1 -0
  117. package/dist/schema/dist/entity/index.js +1 -0
  118. package/dist/schema/dist/entity/types.js +1 -0
  119. package/dist/schema/dist/index.js +1 -0
  120. package/package.json +49 -0
@@ -0,0 +1,92 @@
1
+ import { EnqueueOptions, JobQueue } from "../queue/types.js";
2
+
3
+ //#region src/scheduler/index.d.ts
4
+
5
+ /**
6
+ * Scheduled job configuration.
7
+ */
8
+ interface ScheduledJobConfig {
9
+ /** Unique name for the schedule */
10
+ name: string;
11
+ /** Cron expression (e.g., '0 0 * * *' for daily at midnight) */
12
+ cronExpression: string;
13
+ /** Job type to enqueue */
14
+ jobType: string;
15
+ /** Job payload (can be a function for dynamic payloads) */
16
+ payload?: unknown | (() => unknown | Promise<unknown>);
17
+ /** Enqueue options */
18
+ options?: EnqueueOptions;
19
+ /** Timezone for cron evaluation (default: UTC) */
20
+ timezone?: string;
21
+ /** Whether the schedule is enabled */
22
+ enabled?: boolean;
23
+ /** Description */
24
+ description?: string;
25
+ }
26
+ /**
27
+ * Active scheduled job with next run time.
28
+ */
29
+ interface ActiveSchedule extends ScheduledJobConfig {
30
+ nextRun: Date | null;
31
+ lastRun: Date | null;
32
+ }
33
+ /**
34
+ * Job scheduler for recurring jobs.
35
+ */
36
+ declare class JobScheduler {
37
+ private readonly queue;
38
+ private readonly schedules;
39
+ private timer?;
40
+ private readonly checkIntervalMs;
41
+ constructor(queue: JobQueue, options?: {
42
+ checkIntervalMs?: number;
43
+ });
44
+ /**
45
+ * Add a scheduled job.
46
+ */
47
+ schedule(config: ScheduledJobConfig): void;
48
+ /**
49
+ * Remove a scheduled job.
50
+ */
51
+ unschedule(name: string): boolean;
52
+ /**
53
+ * Enable a scheduled job.
54
+ */
55
+ enable(name: string): boolean;
56
+ /**
57
+ * Disable a scheduled job.
58
+ */
59
+ disable(name: string): boolean;
60
+ /**
61
+ * Get all schedules.
62
+ */
63
+ getSchedules(): ActiveSchedule[];
64
+ /**
65
+ * Get a specific schedule.
66
+ */
67
+ getSchedule(name: string): ActiveSchedule | undefined;
68
+ /**
69
+ * Start the scheduler.
70
+ */
71
+ start(): void;
72
+ /**
73
+ * Stop the scheduler.
74
+ */
75
+ stop(): void;
76
+ /**
77
+ * Check and enqueue due schedules.
78
+ */
79
+ private checkSchedules;
80
+ }
81
+ /**
82
+ * Create a job scheduler instance.
83
+ */
84
+ declare function createScheduler(queue: JobQueue, options?: {
85
+ checkIntervalMs?: number;
86
+ }): JobScheduler;
87
+ /**
88
+ * Helper to define a scheduled job configuration.
89
+ */
90
+ declare function defineSchedule(config: ScheduledJobConfig): ScheduledJobConfig;
91
+ //#endregion
92
+ export { ActiveSchedule, JobScheduler, ScheduledJobConfig, createScheduler, defineSchedule };
@@ -0,0 +1 @@
1
+ function e(e,t=new Date){try{let n=e.trim().split(/\s+/);if(n.length!==5)return console.warn(`Invalid cron expression: ${e}`),null;let r=n[0],i=n[1],a=n[2],o=n[3],s=new Date(t);if(s.setSeconds(0),s.setMilliseconds(0),r&&i&&r!==`*`&&i!==`*`&&a===`*`&&o===`*`){let e=Number.parseInt(r,10),n=Number.parseInt(i,10);return s.setHours(n,e,0,0),s<=t&&s.setDate(s.getDate()+1),s}return s.setMinutes(s.getMinutes()+1),s}catch{return null}}var t=class{schedules=new Map;timer;checkIntervalMs;constructor(e,t={}){this.queue=e,this.checkIntervalMs=t.checkIntervalMs??6e4}schedule(t){let n=t.enabled===!1?null:e(t.cronExpression);this.schedules.set(t.name,{...t,enabled:t.enabled??!0,nextRun:n,lastRun:null})}unschedule(e){return this.schedules.delete(e)}enable(t){let n=this.schedules.get(t);return n?(n.enabled=!0,n.nextRun=e(n.cronExpression),!0):!1}disable(e){let t=this.schedules.get(e);return t?(t.enabled=!1,t.nextRun=null,!0):!1}getSchedules(){return Array.from(this.schedules.values())}getSchedule(e){return this.schedules.get(e)}start(){this.timer||=(this.checkSchedules(),setInterval(()=>{this.checkSchedules()},this.checkIntervalMs))}stop(){this.timer&&=(clearInterval(this.timer),void 0)}async checkSchedules(){let t=new Date;for(let n of this.schedules.values())if(!(!n.enabled||!n.nextRun)&&n.nextRun<=t)try{let r=typeof n.payload==`function`?await n.payload():n.payload;await this.queue.enqueue(n.jobType,r,n.options),n.lastRun=t,n.nextRun=e(n.cronExpression,t)}catch(e){console.error(`Failed to enqueue scheduled job ${n.name}:`,e)}}};function n(e,n){return new t(e,n)}function r(e){return e}export{t as JobScheduler,n as createScheduler,r as defineSchedule};
@@ -0,0 +1 @@
1
+ import{z as e}from"zod";import"graphql";
@@ -0,0 +1 @@
1
+ import{z as e}from"zod";import{GraphQLScalarType as t}from"graphql";var n=class extends t{zodSchema;jsonSchemaDef;constructor(e){super(e),this.zodSchema=e.zod,this.jsonSchemaDef=e.jsonSchema}getZod(){return this.zodSchema}getPothos(){return this}getJson(){return typeof this.jsonSchemaDef==`function`?this.jsonSchemaDef():this.jsonSchemaDef}getJsonSchemaDef(){return this.jsonSchemaDef}getJsonSchema(){let e=t=>{let n=typeof t==`function`?t():t;if(Array.isArray(n))return n.map(t=>e(t));if(n&&typeof n==`object`){let t={};for(let[r,i]of Object.entries(n))t[r]=e(i);return t}return n};return e(this.getJson())}};export{n};
@@ -0,0 +1 @@
1
+ import{n as e}from"./FieldType.js";import{z as t}from"zod";import{Kind as n}from"graphql";const r=/^[A-Za-z]{2}(?:-[A-Za-z0-9]{2,8})*$/,i=/^(?:UTC|[A-Za-z_]+\/[A-Za-z_]+)$/,a=/^[+]?\d[\d\s().-]{3,}$/,o=/^[A-Z]{3}$/,s=/^[A-Z]{2}$/,c=-180,l={String_unsecure:()=>new e({name:`String_unsecure`,description:`Unvalidated string scalar`,zod:t.string(),parseValue:e=>t.string().parse(e),serialize:e=>String(e),parseLiteral:e=>{if(e.kind!==n.STRING)throw TypeError(`Invalid literal`);return e.value},jsonSchema:{type:`string`}}),Int_unsecure:()=>new e({name:`Int_unsecure`,description:`Unvalidated integer scalar`,zod:t.number().int(),parseValue:e=>{let n=typeof e==`number`?e:Number(e);return t.number().int().parse(n)},serialize:e=>Math.trunc(typeof e==`number`?e:Number(e)),parseLiteral:e=>{if(e.kind!==n.INT)throw TypeError(`Invalid literal`);return Number(e.value)},jsonSchema:{type:`integer`}}),Float_unsecure:()=>new e({name:`Float_unsecure`,description:`Unvalidated float scalar`,zod:t.number(),parseValue:e=>{let n=typeof e==`number`?e:Number(e);return t.number().parse(n)},serialize:e=>Number(e),parseLiteral:e=>{if(e.kind!==n.FLOAT&&e.kind!==n.INT)throw TypeError(`Invalid literal`);return Number(e.value)},jsonSchema:{type:`number`}}),Boolean:()=>new e({name:`Boolean`,description:`Unvalidated boolean scalar`,zod:t.boolean(),parseValue:e=>t.coerce.boolean().parse(e),serialize:e=>!!e,parseLiteral:e=>{if(e.kind!==n.BOOLEAN)throw TypeError(`Invalid literal`);return e.value},jsonSchema:{type:`boolean`}}),ID:()=>new e({name:`ID`,description:`Unvalidated id scalar`,zod:t.string(),parseValue:e=>t.string().parse(e),serialize:e=>String(e),parseLiteral:e=>{if(e.kind!==n.STRING)throw TypeError(`Invalid literal`);return e.value},jsonSchema:{type:`string`}}),JSON:()=>new e({name:`JSON`,zod:t.any(),parseValue:e=>e,serialize:e=>e,jsonSchema:{}}),JSONObject:()=>new e({name:`JSONObject`,zod:t.record(t.string(),t.any()),parseValue:e=>t.record(t.string(),t.any()).parse(e),serialize:e=>e??{},jsonSchema:{type:`object`}}),Date:()=>new e({name:`Date`,zod:t.date(),parseValue:e=>e instanceof Date?e:new Date(String(e)),serialize:e=>e instanceof Date?e.toISOString().split(`T`)[0]:String(e),jsonSchema:{type:`string`,format:`date`}}),DateTime:()=>new e({name:`DateTime`,zod:t.date(),parseValue:e=>e instanceof Date?e:new Date(String(e)),serialize:e=>e instanceof Date?e.toISOString():String(e),jsonSchema:{type:`string`,format:`date-time`}}),Time:()=>new e({name:`Time`,zod:t.string().regex(/^\d{2}:\d{2}(:\d{2})?$/),parseValue:e=>t.string().regex(/^\d{2}:\d{2}(:\d{2})?$/).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:`^\\d{2}:\\d{2}(:\\d{2})?$`}}),EmailAddress:()=>new e({name:`EmailAddress`,zod:t.string().email(),parseValue:e=>t.string().email().parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,format:`email`}}),URL:()=>new e({name:`URL`,zod:t.string().url(),parseValue:e=>t.string().url().parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,format:`uri`}}),PhoneNumber:()=>new e({name:`PhoneNumber`,zod:t.string().regex(a),parseValue:e=>t.string().regex(a).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:a.source}}),NonEmptyString:()=>new e({name:`NonEmptyString`,zod:t.string().min(1),parseValue:e=>t.string().min(1).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,minLength:1}}),Locale:()=>new e({name:`Locale`,zod:t.string().regex(r),parseValue:e=>t.string().regex(r).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:r.source}}),TimeZone:()=>new e({name:`TimeZone`,zod:t.string().regex(i),parseValue:e=>t.string().regex(i).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:i.source}}),Latitude:()=>new e({name:`Latitude`,zod:t.number().min(-90).max(90),parseValue:e=>t.coerce.number().min(-90).max(90).parse(e),serialize:e=>Number(e),jsonSchema:{type:`number`,minimum:-90,maximum:90}}),Longitude:()=>new e({name:`Longitude`,zod:t.number().min(c).max(180),parseValue:e=>t.coerce.number().min(c).max(180).parse(e),serialize:e=>Number(e),jsonSchema:{type:`number`,minimum:c,maximum:180}}),Currency:()=>new e({name:`Currency`,zod:t.string().regex(o),parseValue:e=>t.string().regex(o).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:o.source}}),CountryCode:()=>new e({name:`CountryCode`,zod:t.string().regex(s),parseValue:e=>t.string().regex(s).parse(e),serialize:e=>String(e),jsonSchema:{type:`string`,pattern:s.source}})};export{l};
@@ -0,0 +1 @@
1
+ import"./EnumType.js";import"./FieldType.js";import{z as e}from"zod";var t=class{constructor(e){this.config=e}getZod(){let t=Object.entries(this.config.fields).reduce((t,[n,r])=>{let i=r.type.getZod(),a=r.isArray?e.array(i):i;return t[n]=r.isOptional?a.optional():a,t},{});return e.object(t)}getPothosInput(){return this.config.name}};const n=e=>new t(e);export{n,t};
@@ -0,0 +1 @@
1
+ import{z as e}from"zod";function t(e){return e}function n(e){return e}const r={string(e){return{kind:`scalar`,type:`String`,...e}},int(e){return{kind:`scalar`,type:`Int`,...e}},float(e){return{kind:`scalar`,type:`Float`,...e}},boolean(e){return{kind:`scalar`,type:`Boolean`,...e}},dateTime(e){return{kind:`scalar`,type:`DateTime`,...e}},json(e){return{kind:`scalar`,type:`Json`,...e}},bigInt(e){return{kind:`scalar`,type:`BigInt`,...e}},decimal(e){return{kind:`scalar`,type:`Decimal`,...e}},bytes(e){return{kind:`scalar`,type:`Bytes`,...e}},id(e){return{kind:`scalar`,type:`String`,isId:!0,default:`cuid()`,...e}},uuid(e){return{kind:`scalar`,type:`String`,isId:!0,default:`uuid()`,...e}},autoIncrement(e){return{kind:`scalar`,type:`Int`,isId:!0,default:`autoincrement()`,...e}},createdAt(e){return{kind:`scalar`,type:`DateTime`,default:`now()`,...e}},updatedAt(e){return{kind:`scalar`,type:`DateTime`,updatedAt:!0,...e}},email(t){return{kind:`scalar`,type:`String`,zod:e.email(),...t}},url(t){return{kind:`scalar`,type:`String`,zod:e.url(),...t}},enum(e,t){return{kind:`enum`,enumName:e,...t}},inlineEnum(e,t,n){return{kind:`enum`,enumName:e,values:t,...n}},hasOne(e,t){return{kind:`relation`,type:`hasOne`,target:e,...t}},hasMany(e,t){return{kind:`relation`,type:`hasMany`,target:e,...t}},belongsTo(e,t,n,r){return{kind:`relation`,type:`belongsTo`,target:e,fields:t,references:n,...r}},foreignKey(e){return{kind:`scalar`,type:`String`,...e}}},i={on(e,t){return{fields:e,...t}},unique(e,t){return{fields:e,unique:!0,...t}},compound(e,t,n){return{fields:e,sort:t,...n}}};export{i,n,r,t};
@@ -0,0 +1 @@
1
+ import{i as e,n as t,r as n,t as r}from"./defineEntity.js";import"./types.js";
@@ -0,0 +1 @@
1
+ import{z as e}from"zod";
@@ -0,0 +1 @@
1
+ import"./EnumType.js";import{n as e}from"./FieldType.js";import{l as t}from"./ScalarTypeEnum.js";import{n,t as r}from"./SchemaModel.js";import{i,n as a,r as o,t as s}from"./entity/defineEntity.js";import"./entity/index.js";
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@lssm/lib.jobs",
3
+ "version": "0.0.0-canary-20251206160926",
4
+ "description": "Background jobs and scheduler module for ContractSpec applications",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "type": "module",
8
+ "scripts": {
9
+ "publish:pkg": "bun publish --tolerate-republish --ignore-scripts --verbose",
10
+ "build": "bun build:bundle && bun build:types",
11
+ "build:bundle": "tsdown",
12
+ "build:types": "tsc --noEmit",
13
+ "dev": "bun build:bundle --watch",
14
+ "clean": "rimraf dist .turbo",
15
+ "lint": "bun lint:fix",
16
+ "lint:fix": "eslint src --fix",
17
+ "lint:check": "eslint src"
18
+ },
19
+ "dependencies": {
20
+ "@lssm/lib.schema": "workspace:*",
21
+ "@lssm/lib.contracts": "workspace:*",
22
+ "zod": "^4.1.13",
23
+ "cron-parser": "^5.4.0"
24
+ },
25
+ "devDependencies": {
26
+ "@lssm/tool.typescript": "workspace:*",
27
+ "@lssm/tool.tsdown": "workspace:*",
28
+ "typescript": "^5.9.3"
29
+ },
30
+ "exports": {
31
+ ".": "./dist/index.js",
32
+ "./contracts": "./dist/contracts/index.js",
33
+ "./entities": "./dist/entities/index.js",
34
+ "./events": "./dist/events.js",
35
+ "./queue": "./dist/queue/index.js",
36
+ "./queue/memory-queue": "./dist/queue/memory-queue.js",
37
+ "./queue/types": "./dist/queue/types.js",
38
+ "./scheduler": "./dist/scheduler/index.js",
39
+ "./*": "./*"
40
+ },
41
+ "module": "./dist/index.js",
42
+ "files": [
43
+ "dist",
44
+ "README.md"
45
+ ],
46
+ "publishConfig": {
47
+ "access": "public"
48
+ }
49
+ }