Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
2dffb3d
chore: Update packages
DaveSkender May 15, 2026
38b0ceb
code cleanup (minor)
DaveSkender May 15, 2026
d272d74
chore: exclude AGENTS.md from package builds
DaveSkender May 15, 2026
a896d94
fix: remove hard dependency on chartjs-chart-financial external packa…
DaveSkender May 15, 2026
a23d09e
docs: update for correctness
DaveSkender May 15, 2026
edc6264
chore: bump version to 0.1.1 in package.json
DaveSkender May 15, 2026
1a86237
feat: enhance testing tasks and update dotnet test command
DaveSkender May 15, 2026
d59d560
docs: Address PR review feedback and rewrite quick-start guide
DaveSkender May 15, 2026
f64af0b
docs: Remove internal repo references from indy-charts doc site
DaveSkender May 15, 2026
0086549
docs: Sentence case headings and clarify vitepress site purpose in AG…
DaveSkender May 15, 2026
afce89d
docs: Sentence case nav, sidebar, and feature card titles
DaveSkender May 15, 2026
4002a9f
chore: Implement .env/.env.example for local credentials
DaveSkender May 15, 2026
2148606
chore: Update environment configuration and streamline local setup
DaveSkender May 16, 2026
03c8d5c
docs: Update Node.js version requirement to 22+ in installation guide
DaveSkender May 16, 2026
b609773
chore: Update NuGet and Node packages to latest compatible versions
DaveSkender May 16, 2026
68d36b2
docs: Add usage examples for Indy Charts and VitePress integration
DaveSkender May 16, 2026
db5f645
refactor: vue not vitepress
DaveSkender May 16, 2026
8e14d93
chore: Update installation instructions and package dependencies for …
DaveSkender May 16, 2026
b00f07a
chore: Improve formatting and clarity in documentation
DaveSkender May 16, 2026
ef5c2f7
chore: refresh github workflows
DaveSkender May 16, 2026
18b8dae
feat: Upgrade to Stock.Indicators v3.0.0-preview.3.1
DaveSkender May 16, 2026
48abfb8
chore: remove outdated plan for missing indicators implementation
DaveSkender May 16, 2026
9cda473
refactor: strip VitePress card wrappers and add CancellationToken pro…
DaveSkender May 16, 2026
95b1a8f
feat: update chart themes and add static chart examples with sample data
DaveSkender May 16, 2026
71eb84e
fix: Resolve PR review thread issues
DaveSkender May 16, 2026
065b08d
Update link text for contributing guidelines
DaveSkender May 16, 2026
6bbe449
Update link description in README.md
DaveSkender May 16, 2026
8022acf
Update chart library reference in documentation
DaveSkender May 16, 2026
8eb802d
Handle operation cancellation in quote retrieval
DaveSkender May 16, 2026
592b356
Update server/WebApi/Services/Service.Quotes.cs
DaveSkender May 16, 2026
88af651
fix: Use production API URL in VitePress production builds
DaveSkender May 17, 2026
2778d97
fix: Allow VitePress CF Pages origins in API CORS policy
DaveSkender May 17, 2026
356c124
fix: Address Codacy issues in WebApi services and test utils
DaveSkender May 17, 2026
54cf744
fix: Accept 'date' field from Skender v2 API alongside 'timestamp'
DaveSkender May 17, 2026
b5a4299
Update libs/indy-charts/api/client.ts
DaveSkender May 18, 2026
febd746
feat: Add unit tests for UtilityService and Main controller endpoints…
DaveSkender May 18, 2026
c2a0338
refactor: Simplify ControllerContext setup in MainEndpointsTests
DaveSkender May 18, 2026
61428bc
feat: Enhance theme support and customization; update utility service…
DaveSkender May 18, 2026
d81e97a
feat: Enhance OverlayChart functionality with full dataset building a…
DaveSkender May 18, 2026
cdb7916
fix: Update date handling in backup quotes generation and improve REA…
DaveSkender May 18, 2026
3e23930
refactor: Optimize mockChartApi by pre-computing response payloads an…
DaveSkender May 18, 2026
5ea6690
refactor: Improve pushMetaTags tests by injecting mocks via dependenc…
DaveSkender May 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .claude/agents

This file was deleted.

1 change: 0 additions & 1 deletion .claude/skills

This file was deleted.

4 changes: 2 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "Dev Container",
"image": "mcr.microsoft.com/devcontainers/base:bookworm",
"features": {
"ghcr.io/devcontainers/features/node:1": {
"ghcr.io/devcontainers/features/node:2": {
"version": "24"
},
"ghcr.io/devcontainers/features/dotnet:2": {
Expand Down Expand Up @@ -31,8 +31,8 @@
"dotjoshjohnson.xml",
"EditorConfig.EditorConfig",
"esbenp.prettier-vscode",
"GitHub.copilot-chat",
"GitHub.vscode-github-actions",
"mikestead.dotenv",
"ms-azuretools.vscode-azurefunctions",
"ms-azuretools.vscode-azurestorage",
"ms-azuretools.vscode-containers",
Expand Down
8 changes: 8 additions & 0 deletions .devcontainer/post-create.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,13 @@ ng config -g cli.completion.prompted true
echo "📦 Installing Node dependencies..."
pnpm install --frozen-lockfile --loglevel=error --config.confirmModulesPurge=false

# Bootstrap local.settings.json if absent (safe — never overwrites existing file with credentials)
SETTINGS_FILE="${REPO_ROOT}/server/Functions/local.settings.json"
SETTINGS_EXAMPLE="${REPO_ROOT}/server/Functions/local.settings.example.json"
if [ ! -f "${SETTINGS_FILE}" ]; then
cp "${SETTINGS_EXAMPLE}" "${SETTINGS_FILE}"
echo "📄 Created server/Functions/local.settings.json from example (fill in ALPACA_KEY and ALPACA_SECRET if needed)"
fi

# cleanup
sudo apt-get autoremove --purge -y
6 changes: 4 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ double_quote_style = double # Use double quotes for strings

# Markdown files
[*.md]
max_line_length = off
trim_trailing_whitespace = false

# JSON, XML, and .NET projects
Expand All @@ -30,6 +31,7 @@ end_of_line = crlf # Use CRLF for Windows specific files
indent_size = 4 # Use 4 spaces for .NET files
tab_width = 4 # Set tab width to 4 spaces

# .NET and C# style and code analyis settings
dotnet_sort_system_directives_first = true # Place System.* usings before others
dotnet_separate_import_directive_groups = false # Don't add blank lines between using directives
dotnet_style_prefer_single_quotes = false:suggestion # Prefer double quotes
Expand All @@ -44,5 +46,5 @@ csharp_style_expression_bodied_methods = true:silent # Allow expression-bodi
csharp_style_expression_bodied_properties = true:silent # Allow expression-bodied properties

# Diagnostic overrides
dotnet_diagnostic.IDE0058.severity = none # Disable "use '_' discard" value warnings
dotnet_diagnostic.CA1873.severity = warning # Avoid potentially expensive logging
dotnet_diagnostic.IDE0058.severity = none # Disable "use '_' discard" value warnings
dotnet_diagnostic.CA1873.severity = warning # Avoid potentially expensive logging
13 changes: 5 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
name: "CI"

on:
push:
branches: ["main"]
pull_request:
push:
branches: ["main"]

concurrency:
Expand All @@ -21,10 +20,8 @@ jobs:
runs-on: ubuntu-latest

steps:
- name: Checkout
- name: Checkout sources
uses: actions/checkout@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Setup .NET
uses: actions/setup-dotnet@v5
Expand Down Expand Up @@ -81,7 +78,7 @@ jobs:

- name: Upload backend coverage artifacts
if: github.event_name == 'pull_request' && (success() || failure())
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: backend-coverage-report
path: |
Expand All @@ -97,7 +94,7 @@ jobs:
uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@v6
with:
run_install: false

Expand Down Expand Up @@ -145,7 +142,7 @@ jobs:

- name: Upload coverage artifacts
if: github.event_name == 'pull_request' && always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: code-coverage-reports
path: |
Expand Down
8 changes: 3 additions & 5 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- name: Checkout
- name: Checkout sources
uses: actions/checkout@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -29,9 +29,7 @@ jobs:
continue-on-error: true

- name: Install .NET tools
run: |
dotnet tool install --global dotnet-format
dotnet tool install --global dotnet-outdated-tool
run: dotnet tool restore
continue-on-error: true

- name: Build .NET Solution
Expand All @@ -41,7 +39,7 @@ jobs:
continue-on-error: true

- name: Setup pnpm
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@v6
with:
run_install: false
continue-on-error: true
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/deploy-website.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
url: https://charts.stockindicators.dev

steps:
- name: Checkout
- name: Checkout sources
uses: actions/checkout@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
Expand Down Expand Up @@ -86,15 +86,15 @@ jobs:

- name: Save Web API
if: github.ref == 'refs/heads/main'
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
Comment thread
DaveSkender marked this conversation as resolved.
with:
name: api
path: "server/artifacts/api"
include-hidden-files: true

- name: Save Functions
if: github.ref == 'refs/heads/main'
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: fns
path: "server/artifacts/fns"
Expand All @@ -113,7 +113,7 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Setup pnpm
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@v6
with:
run_install: false

Expand Down Expand Up @@ -145,7 +145,7 @@ jobs:
run: pnpm --filter @stock-charts/client run build.prod

- name: Save artifacts
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: web
path: client/dist/app/browser
Expand All @@ -166,20 +166,20 @@ jobs:
steps:
- name: Download Functions package
if: github.ref == 'refs/heads/main'
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: fns
path: artifacts/fns

- name: Download API package
if: github.ref == 'refs/heads/main'
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: api
path: artifacts/api

- name: Download Web package
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: web
path: artifacts/web
Expand All @@ -202,7 +202,7 @@ jobs:

- name: Publish to Cloudflare Pages
id: deploy
uses: cloudflare/wrangler-action@v3
uses: cloudflare/wrangler-action@v4
with:
apiToken: ${{ secrets.CLOUDFLARE_API_KEY }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
Expand Down
16 changes: 5 additions & 11 deletions .github/workflows/publish-chartjs-financial.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ on:
- main
paths:
- 'libs/chartjs-financial/**'
- 'libs/chartjs-financial/package.json'
workflow_dispatch: {}

concurrency:
Expand All @@ -27,22 +26,21 @@ jobs:
environment: pkg.github.com

steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Checkout sources
uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1
uses: pnpm/action-setup@v6
with:
run_install: false

- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e
uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
cache-dependency-path: pnpm-lock.yaml
registry-url: https://npm.pkg.github.com
scope: "@facioquo"

- name: Install dependencies
run: pnpm install --frozen-lockfile
Expand All @@ -60,10 +58,6 @@ jobs:
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Ensure pnpm can authenticate to GitHub Packages
echo "@facioquo:registry=https://npm.pkg.github.com" > .npmrc
echo "//npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN}" >> .npmrc

PACKAGE_VERSION=$(jq -r '.version' package.json)
PACKAGE_NAME=$(jq -r '.name' package.json)

Expand All @@ -77,5 +71,5 @@ jobs:
echo "Version $PACKAGE_VERSION already published; skipping publish."
else
echo "Publishing $PACKAGE_NAME@$PACKAGE_VERSION with tag '$NPM_TAG'"
pnpm publish --no-git-checks --access restricted --tag "$NPM_TAG"
pnpm publish --no-git-checks --tag "$NPM_TAG"
fi
16 changes: 5 additions & 11 deletions .github/workflows/publish-indy-charts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ on:
- main
paths:
- 'libs/indy-charts/**'
- 'libs/indy-charts/package.json'
workflow_dispatch: {}

concurrency:
Expand All @@ -27,22 +26,21 @@ jobs:
environment: pkg.github.com

steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Checkout sources
uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1
uses: pnpm/action-setup@v6
with:
run_install: false

- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e
uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
cache-dependency-path: pnpm-lock.yaml
registry-url: https://npm.pkg.github.com
scope: "@facioquo"

- name: Install dependencies
run: pnpm install --frozen-lockfile
Expand All @@ -63,10 +61,6 @@ jobs:
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Ensure pnpm can authenticate to GitHub Packages
echo "@facioquo:registry=https://npm.pkg.github.com" > .npmrc
echo "//npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN}" >> .npmrc

PACKAGE_VERSION=$(jq -r '.version' package.json)
PACKAGE_NAME=$(jq -r '.name' package.json)

Expand All @@ -80,5 +74,5 @@ jobs:
echo "Version $PACKAGE_VERSION already published; skipping publish."
else
echo "Publishing $PACKAGE_NAME@$PACKAGE_VERSION with tag '$NPM_TAG'"
pnpm publish --no-git-checks --access restricted --tag "$NPM_TAG"
pnpm publish --no-git-checks --tag "$NPM_TAG"
fi
2 changes: 1 addition & 1 deletion .vscode/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
"dotjoshjohnson.xml",
"EditorConfig.EditorConfig",
"esbenp.prettier-vscode",
"GitHub.copilot-chat",
"GitHub.vscode-github-actions",
"mikestead.dotenv",
"ms-azuretools.vscode-azurefunctions",
"ms-azuretools.vscode-azurestorage",
"ms-azuretools.vscode-containers",
Expand Down
Loading
Loading