Skip to content

Commit

Permalink
chore: wip
Browse files Browse the repository at this point in the history
chore: wip
  • Loading branch information
chrisbbreuer committed Dec 29, 2024
1 parent a32cc57 commit 1939aa4
Show file tree
Hide file tree
Showing 12 changed files with 231 additions and 17 deletions.
136 changes: 136 additions & 0 deletions storage/framework/core/cron/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
# Stacks SMS

Stacks SMS is driver system for sending SMS messages.

## ☘️ Features

- 📦 Send SMS

## 🤖 Usage

```bash
bun install -d @stacksjs/sms
```

You may now use it in your project:

```ts
import * as sms from '@stacksjs/sms'

/* Then choose a driver. E.g for twilio */
const notification = sms.twilio

notification.send(SMSOptions)

interface SMSOptions {
to: string
content: string
from?: string
attachments?: AttachmentOptions[]
id?: string
}
```

### Drivers

Drivers are configured with the following environment variables:

#### Twilio

```bash
TWILIO_ACCOUNT_SID=ACtest
TWILIO_AUTH_TOKEN=testtoken
TWILIO_FROM_NUMBER=+112345
TWILIO_TO_NUMBER=+145678
```

#### Nexmo

```bash
VONAGE_API_KEY=VN123
VONAGE_API_SECRET=testkey
VONAGE_FROM_NUMBER=+112345
```

#### Gupshup

```bash
GUPSHUP_USER_ID=GU123
GUPSHUP_PASSWORD=password
```

#### Plivo

```bash
PLIVO_ACCOUNT_ID=PA123
PLIVO_AUTH_TOKEN=testtoken
PLIVO_FROM_NUMBER=+112345
```

#### SMS77

```bash
SMS77_API_KEY=SA123
[email protected]
```

#### SNS

```bash
SMS77_API_KEY=SA123
[email protected]
```

#### Telnyx

```bash
TELNYX_API_KEY=TA123
TELNYX_MESSAGE_PROFILE_ID=testprofileid
[email protected]
```

#### Termii

```bash
TERMII_API_KEY=TermA123
[email protected]
```

Learn more in the docs.

## 🧪 Testing

```bash
bun test
```

## 📈 Changelog

Please see our [releases](https://github.com/stacksjs/stacks/releases) page for more information on what has changed recently.

## 🚜 Contributing

Please review the [Contributing Guide](https://github.com/stacksjs/contributing) for details.

## 🏝 Community

For help, discussion about best practices, or any other conversation that would benefit from being searchable:

[Discussions on GitHub](https://github.com/stacksjs/stacks/discussions)

For casual chit-chat with others using this package:

[Join the Stacks Discord Server](https://discord.gg/stacksjs)

## 🙏🏼 Credits

Many thanks to the following core technologies & people who have contributed to this package:

- [Chris Breuer](https://github.com/chrisbbreuer)
- [All Contributors](../../contributors)

## 📄 License

The MIT License (MIT). Please see [LICENSE](https://github.com/stacksjs/stacks/tree/main/LICENSE.md) for more information.

Made with 💙
27 changes: 27 additions & 0 deletions storage/framework/core/cron/build.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { dts } from 'bun-plugin-dtsx'
import { intro, outro } from '../build/src'

const { startTime } = await intro({
dir: import.meta.dir,
})

const result = await Bun.build({
entrypoints: ['./src/index.ts'],
outdir: './dist',
format: 'esm',
target: 'bun',
// sourcemap: 'linked',
minify: true,
plugins: [
dts({
root: './src',
outdir: './dist',
}),
],
})

await outro({
dir: import.meta.dir,
startTime,
result,
})
40 changes: 40 additions & 0 deletions storage/framework/core/cron/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"name": "@stacksjs/cron",
"type": "module",
"version": "0.68.2",
"description": "The Stacks cron.",
"author": "Chris Breuer",
"contributors": ["Chris Breuer <[email protected]>"],
"license": "MIT",
"funding": "https://github.com/sponsors/chrisbbreuer",
"homepage": "https://github.com/stacksjs/stacks/tree/main/storage/framework/core/cron#readme",
"repository": {
"type": "git",
"url": "git+https://github.com/stacksjs/stacks.git",
"directory": "./storage/framework/core/cron"
},
"bugs": {
"url": "https://github.com/stacksjs/stacks/issues"
},
"keywords": ["cron", "croner", "jobs", "bun", "stacks"],
"exports": {
".": {
"import": "./dist/index.js"
},
"./*": {
"import": "./dist/*"
}
},
"module": "dist/index.js",
"types": "dist/index.d.ts",
"files": ["README.md", "dist"],
"scripts": {
"build": "bun build.ts",
"typecheck": "bun tsc --noEmit",
"prepublishOnly": "bun run build"
},
"devDependencies": {
"@stacksjs/development": "workspace:*",
"croner": "^9.0.0"
}
}
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
export * from './types'

export { Cron, CronDate, CronPattern, scheduledJobs } from 'croner'
11 changes: 11 additions & 0 deletions storage/framework/core/cron/src/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import type { CatchCallbackFn, CronOptions, ProtectCallbackFn } from 'croner'

export type {
CatchCallbackFn,
CronOptions,
ProtectCallbackFn,
}

export type IntRange<Min extends number, Max extends number> = number extends Min | Max
? never
: number | [Min | number, Max | number]
7 changes: 7 additions & 0 deletions storage/framework/core/cron/tests/cron.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { describe, expect, it } from 'bun:test'

describe('@stacksjs/cron', () => {
it('should pass', () => {
expect(true).toBe(true)
})
})
3 changes: 3 additions & 0 deletions storage/framework/core/cron/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": "../tsconfig.build.json"
}
2 changes: 1 addition & 1 deletion storage/framework/core/scheduler/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"prepublishOnly": "bun run build"
},
"dependencies": {
"croner": "^9.0.0"
"@stacksjs/cron": "workspace:*"
},
"devDependencies": {
"@stacksjs/actions": "workspace:*",
Expand Down
1 change: 0 additions & 1 deletion storage/framework/core/scheduler/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// export { Schedule } from './schedule'

export * from './cron'
export * from './schedule'
export * from './types'

Expand Down
4 changes: 2 additions & 2 deletions storage/framework/core/scheduler/src/schedule.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { CatchCallbackFn, CronOptions } from './'
import type { CatchCallbackFn, CronOptions } from '@stacksjs/cron'
import type { TimedSchedule, Timezone, UntimedSchedule } from './types'
import { runAction } from '@stacksjs/actions'
import { log, runCommand } from '@stacksjs/cli'
import { Cron } from '@stacksjs/cron'
import { runJob } from '@stacksjs/queue'
import { Cron } from './'

/**
* This class is used to create and manage scheduled jobs. It provides methods for
Expand Down
13 changes: 1 addition & 12 deletions storage/framework/core/scheduler/src/types.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,4 @@
import type { CatchCallbackFn, CronOptions, ProtectCallbackFn } from 'croner'
import type { Cron } from './cron'

export type {
CatchCallbackFn,
CronOptions,
ProtectCallbackFn,
}

export type IntRange<Min extends number, Max extends number> = number extends Min | Max
? never
: number | [Min | number, Max | number]
import type { CatchCallbackFn, Cron } from '@stacksjs/cron'

// IANA Timezone
export type Timezone =
Expand Down
2 changes: 1 addition & 1 deletion storage/framework/core/types/src/cron-jobs.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { IntRange } from '@stacksjs/scheduler'
import type { IntRange } from '@stacksjs/cron'

/**
* Cron Job Options.
Expand Down

0 comments on commit 1939aa4

Please sign in to comment.