@deriv-com/smartcharts-champion 1.9.11 → 1.9.13

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.
@@ -2,11 +2,21 @@ name: DocSync AI - Documentation Sync
2
2
 
3
3
  on:
4
4
  schedule:
5
- - cron: "30 6 * * 5" # 10:30 AM GST (6:30 AM UTC) every Friday
5
+ - cron: "30 5 * * 5" # 9:30 AM GST (5:30 AM UTC) every Friday
6
6
 
7
7
  issue_comment:
8
8
  types: [created]
9
9
 
10
+ workflow_dispatch:
11
+ inputs:
12
+ trigger_type:
13
+ description: "Trigger type"
14
+ required: true
15
+ default: "claude_md_refresh"
16
+ type: choice
17
+ options:
18
+ - claude_md_refresh
19
+
10
20
  jobs:
11
21
  docsync-scheduled:
12
22
  if: github.event_name == 'schedule'
@@ -39,6 +49,22 @@ jobs:
39
49
  comment_pr_number: ${{ github.event.issue.number }}
40
50
  comment_id: ${{ github.event.comment.id }}
41
51
  base_branch: "master"
52
+ secrets:
53
+ DOCSYNC_GITHUB_TOKEN: ${{ secrets.DOCSYNC_GITHUB_TOKEN }}
54
+ DOCSYNC_ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
55
+ DOCSYNC_SLACK_TOKEN: ${{ secrets.DOCSYNC_SLACK_TOKEN }}
56
+ DOCSYNC_SLACK_CHANNEL_ID: ${{ secrets.DOCSYNC_SLACK_CHANNEL_ID }}
57
+ DOCSYNC_SLACK_MENTION_USER_IDS: ${{ secrets.DOCSYNC_SLACK_MENTION_USER_IDS }}
58
+
59
+ docsync-claude-md-refresh:
60
+ if: github.event_name == 'workflow_dispatch' && inputs.trigger_type == 'claude_md_refresh'
61
+ permissions:
62
+ contents: write
63
+ pull-requests: write
64
+ uses: deriv-com/shared-actions/.github/workflows/docsync-ai.yml@master
65
+ with:
66
+ trigger_type: "claude_md_refresh"
67
+ base_branch: "master"
42
68
  secrets:
43
69
  DOCSYNC_GITHUB_TOKEN: ${{ secrets.DOCSYNC_GITHUB_TOKEN }}
44
70
  DOCSYNC_ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
@@ -1,6 +1,6 @@
1
1
  # Deployment Workflows Documentation
2
2
 
3
- This directory contains GitHub Actions workflows for deploying the SmartCharts Champion application to Cloudflare Pages.
3
+ This directory contains GitHub Actions workflows for deploying the SmartCharts application to Cloudflare Pages.
4
4
 
5
5
  ## Overview
6
6
 
@@ -1,5 +1,5 @@
1
1
  # Preview deployment workflow
2
- # Builds SmartCharts-champion and integrates with derivatives-trader for preview
2
+ # Builds SmartCharts and integrates with derivatives-trader for preview
3
3
 
4
4
  name: Deploy Preview
5
5
 
@@ -11,7 +11,7 @@ on:
11
11
  workflow_dispatch:
12
12
  inputs:
13
13
  smartcharts_ref:
14
- description: 'smartcharts-champion branch/tag/SHA to build'
14
+ description: 'deriv-smartcharts branch/tag/SHA to build'
15
15
  required: true
16
16
  default: 'master'
17
17
  flutter_chart_ref:
@@ -50,8 +50,8 @@ jobs:
50
50
  - name: Checkout repository
51
51
  uses: actions/checkout@v4
52
52
  with:
53
- repository: deriv-com/smartcharts-champion
54
- path: smartcharts-champion
53
+ repository: deriv-com/deriv-smartcharts
54
+ path: deriv-smartcharts
55
55
  ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.smartcharts_ref || github.event.pull_request.head.sha }}
56
56
  persist-credentials: false
57
57
 
@@ -76,7 +76,7 @@ jobs:
76
76
  env:
77
77
  FLUTTER_REF: ${{ github.event.inputs.flutter_chart_ref }}
78
78
  run: |
79
- cd smartcharts-champion/chart_app
79
+ cd deriv-smartcharts/chart_app
80
80
  # Validate input format (alphanumeric, slashes, hyphens, underscores, dots only)
81
81
  if ! [[ "${FLUTTER_REF}" =~ ^[a-zA-Z0-9/_.-]+$ ]]; then
82
82
  echo "Error: Invalid flutter_chart_ref format. Only alphanumeric characters, slashes, hyphens, underscores, and dots are allowed."
@@ -96,7 +96,7 @@ jobs:
96
96
 
97
97
  - name: Build Flutter chart component
98
98
  run: |
99
- cd smartcharts-champion/chart_app
99
+ cd deriv-smartcharts/chart_app
100
100
  flutter pub get
101
101
  flutter build web --wasm --release
102
102
 
@@ -112,10 +112,10 @@ jobs:
112
112
  run: rm -rf derivatives-trader/node_modules/@deriv-com/smartcharts-champion/dist
113
113
 
114
114
  - name: Setup SmartCharts
115
- run: cd smartcharts-champion && npm install
115
+ run: cd deriv-smartcharts && npm install
116
116
 
117
117
  - name: Build SmartCharts
118
- run: cd smartcharts-champion && npm run build -- --output-path ../derivatives-trader/node_modules/@deriv-com/smartcharts-champion/dist
118
+ run: cd deriv-smartcharts && npm run build -- --output-path ../derivatives-trader/node_modules/@deriv-com/smartcharts-champion/dist
119
119
 
120
120
  - name: Build derivatives-trader
121
121
  env:
@@ -154,5 +154,5 @@ jobs:
154
154
  echo "**Preview URL:** ${{ steps.publish_to_pages_branch.outputs.cf_pages_url }}" >> $GITHUB_STEP_SUMMARY
155
155
  echo "" >> $GITHUB_STEP_SUMMARY
156
156
  echo "**Configuration:**" >> $GITHUB_STEP_SUMMARY
157
- echo "- smartcharts-champion ref: \`${{ github.event.inputs.smartcharts_ref }}\`" >> $GITHUB_STEP_SUMMARY
157
+ echo "- deriv-smartcharts ref: \`${{ github.event.inputs.smartcharts_ref }}\`" >> $GITHUB_STEP_SUMMARY
158
158
  echo "- flutter-chart ref: \`${{ github.event.inputs.flutter_chart_ref }}\`" >> $GITHUB_STEP_SUMMARY
@@ -10,16 +10,16 @@ jobs:
10
10
  permissions:
11
11
  contents: write
12
12
  steps:
13
- - name: Checkout smartcharts-champion
14
- uses: 'deriv-com/smartcharts-champion/.github/actions/checkout@master'
13
+ - name: Checkout deriv-smartcharts
14
+ uses: 'deriv-com/deriv-smartcharts/.github/actions/checkout@master'
15
15
  with:
16
- repository: 'deriv-com/smartcharts-champion'
17
- path: smartcharts-champion
16
+ repository: 'deriv-com/deriv-smartcharts'
17
+ path: deriv-smartcharts
18
18
  ref: master
19
19
 
20
20
  - name: Custom flutter-chart
21
21
  id: flutter_chart
22
- uses: 'deriv-com/smartcharts-champion/.github/actions/checkout@master'
22
+ uses: 'deriv-com/deriv-smartcharts/.github/actions/checkout@master'
23
23
  with:
24
24
  repository: 'deriv-com/flutter-chart'
25
25
  path: flutter-chart
@@ -31,7 +31,7 @@ jobs:
31
31
  cache: true
32
32
  - name: Build flutter
33
33
  run: |
34
- cd smartcharts-champion/chart_app
34
+ cd deriv-smartcharts/chart_app
35
35
  flutter pub get
36
36
  flutter build web --wasm --release
37
37
 
@@ -40,14 +40,14 @@ jobs:
40
40
  with:
41
41
  node-version: 22.x
42
42
 
43
- - name: Setup smartcharts-champion
44
- run: cd smartcharts-champion && npm install
43
+ - name: Setup deriv-smartcharts
44
+ run: cd deriv-smartcharts && npm install
45
45
 
46
- - name: Build smartcharts-champion
47
- run: cd smartcharts-champion && npm run build
48
- - name: Release smartcharts-champion
46
+ - name: Build deriv-smartcharts
47
+ run: cd deriv-smartcharts && npm run build
48
+ - name: Release deriv-smartcharts
49
49
  env:
50
50
  CI: true
51
51
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
52
52
  NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
53
- run: cd smartcharts-champion && npx semantic-release
53
+ run: cd deriv-smartcharts && npx semantic-release
package/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
- ## [1.9.11](https://github.com/deriv-com/smartcharts-champion/compare/v1.9.10...v1.9.11) (2026-04-01)
1
+ ## [1.9.13](https://github.com/deriv-com/deriv-smartcharts/compare/v1.9.12...v1.9.13) (2026-05-06)
2
+
3
+
4
+ ### ♻️ Chores
5
+
6
+ * **deps:** bump picomatch from 4.0.3 to 4.0.4 ([#221](https://github.com/deriv-com/deriv-smartcharts/issues/221)) ([3819c93](https://github.com/deriv-com/deriv-smartcharts/commit/3819c93d47774840bb0d5abf45e82aac2db112c5))
7
+ * **deps:** npm audit fix ([#225](https://github.com/deriv-com/deriv-smartcharts/issues/225)) ([4685484](https://github.com/deriv-com/deriv-smartcharts/commit/46854842c0329d48c23758e87629cb8136db41d8))
8
+ * rename repo to deriv-smartcharts ([#229](https://github.com/deriv-com/deriv-smartcharts/issues/229)) ([ed6085d](https://github.com/deriv-com/deriv-smartcharts/commit/ed6085d4b116ee87365155d61f18b4d8df9059c9))
2
9
 
3
10
 
4
11
  ### 🐛 Bug Fixes
5
12
 
6
- * fonts woff2 to ttf conversion ([#220](https://github.com/deriv-com/smartcharts-champion/issues/220)) ([a71be4a](https://github.com/deriv-com/smartcharts-champion/commit/a71be4af52b0b361b3b3d322029d27601bff80e9))
13
+ * externalize react/jsx-runtime and react/jsx-dev-runtime in webpack build ([#231](https://github.com/deriv-com/deriv-smartcharts/issues/231)) ([8f44372](https://github.com/deriv-com/deriv-smartcharts/commit/8f44372527e85e5914ed4cee50f0248807298f4b))
package/README.md CHANGED
@@ -29,7 +29,7 @@ Before running or contribute to this project, you need to have the setup of the
29
29
  2. **Clone using SSH**
30
30
 
31
31
  ```sh
32
- git@github.com:deriv-com/smartcharts-champion.git
32
+ git@github.com:deriv-com/deriv-smartcharts.git
33
33
  ```
34
34
 
35
35
  3. **Enter project directory**
@@ -1 +1 @@
1
- (()=>{var e={hasImageCodecs:!(typeof ImageDecoder>"u"||"Google Inc."!==navigator.vendor&&"Edg/"!==navigator.agent),hasChromiumBreakIterators:typeof Intl.v8BreakIterator<"u"&&typeof Intl.Segmenter<"u",supportsWasmGC:WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,95,1,120,0])),crossOriginIsolated:window.crossOriginIsolated};function t(...e){return new URL(r(...e),document.baseURI).toString()}function r(...e){return e.filter(e=>!!e).map((e,t)=>0===t?i(e):function(e){let t=0;for(;t<e.length&&"/"===e.charAt(t);)t++;return e.substring(t)}(i(e))).filter(e=>e.length).join("/")}function i(e){let t=e.length;for(;t>0&&"/"===e.charAt(t-1);)t--;return e.substring(0,t)}var n=class{constructor(){this._scriptLoaded=!1}setTrustedTypesPolicy(e){this._ttPolicy=e}async loadEntrypoint(e){let{entrypointUrl:r=t("main.dart.js"),onEntrypointLoaded:i,nonce:n}=e||{};return this._loadJSEntrypoint(r,i,n)}async load(e,r,i,n,a){a??=e=>{e.initializeEngine(i).then(e=>e.runApp())};let{entryPointBaseUrl:o}=i;if("dart2wasm"===e.compileTarget)return this._loadWasmEntrypoint(e,r,o,a);{let r=t(o,e.mainJsPath??"main.dart.js");return this._loadJSEntrypoint(r,a,n)}}didCreateEngineInitializer(e){"function"==typeof this._didCreateEngineInitializerResolve&&(this._didCreateEngineInitializerResolve(e),this._didCreateEngineInitializerResolve=null,delete _flutter.loader.didCreateEngineInitializer),"function"==typeof this._onEntrypointLoaded&&this._onEntrypointLoaded(e)}_loadJSEntrypoint(e,t,r){let i="function"==typeof t;if(!this._scriptLoaded){this._scriptLoaded=!0;let n=this._createScriptTag(e,r);if(!i)return new Promise((e,t)=>{this._didCreateEngineInitializerResolve=e,n.addEventListener("error",t),document.head.append(n)});this._onEntrypointLoaded=t,document.head.append(n)}}async _loadWasmEntrypoint(e,r,i,n){if(!this._scriptLoaded){this._scriptLoaded=!0,this._onEntrypointLoaded=n;let{mainWasmPath:a,jsSupportRuntimePath:o}=e,s=t(i,a),l=t(i,o);null!=this._ttPolicy&&(l=this._ttPolicy.createScriptURL(l));let c,d=WebAssembly.compileStreaming(fetch(s)),u=await import(l);c="skwasm"===e.renderer?(async()=>{let e=await r.skwasm;return window._flutter_skwasmInstance=e,{skwasm:e.wasmExports,skwasmWrapper:e,ffi:{memory:e.wasmMemory}}})():{};let p=await u.instantiate(d,c);await u.invoke(p)}}_createScriptTag(e,t){let r=document.createElement("script");r.type="application/javascript",t&&(r.nonce=t);let i=e;return null!=this._ttPolicy&&(i=this._ttPolicy.createScriptURL(e)),r.src=i,r}};async function a(e,t,r){if(t<0)return e;let i,n=new Promise((e,n)=>{i=setTimeout(()=>{n(new Error(`${r} took more than ${t}ms to resolve. Moving on.`,{cause:a}))},t)});return Promise.race([e,n]).finally(()=>{clearTimeout(i)})}var o=class{setTrustedTypesPolicy(e){this._ttPolicy=e}loadServiceWorker(e){if(!e)return Promise.resolve();if(!("serviceWorker"in navigator)){let e="Service Worker API unavailable.";return window.isSecureContext||(e+="\nThe current context is NOT secure.",e+="\nRead more: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts"),Promise.reject(new Error(e))}let{serviceWorkerVersion:r,serviceWorkerUrl:i=t(`flutter_service_worker.js?v=${r}`),timeoutMillis:n=4e3}=e,o=i;return null!=this._ttPolicy&&(o=this._ttPolicy.createScriptURL(o)),a(navigator.serviceWorker.register(o).then(e=>this._getNewServiceWorker(e,r)).then(this._waitForServiceWorkerActivation),n,"prepareServiceWorker")}async _getNewServiceWorker(e,t){if(!e.active&&(e.installing||e.waiting))return e.installing||e.waiting;if(e.active.scriptURL.endsWith(t))return e.active;{let t=await e.update();return t.installing||t.waiting||t.active}}async _waitForServiceWorkerActivation(e){if(!e||"activated"===e.state){if(e)return;throw new Error("Cannot activate a null service worker!")}return new Promise((t,r)=>{e.addEventListener("statechange",()=>{"activated"===e.state&&t()})})}},s=class{constructor(e,t="flutter-js"){let r=e||[/\.js$/,/\.mjs$/];window.trustedTypes&&(this.policy=trustedTypes.createPolicy(t,{createScriptURL:function(e){if(e.startsWith("blob:"))return e;let i=new URL(e,window.location),n=i.pathname.split("/").pop();if(r.some(e=>e.test(n)))return i.toString();console.error("URL rejected by TrustedTypes policy",t,":",e,"(download prevented)")}}))}},l=e=>{let t=WebAssembly.compileStreaming(fetch(e));return(e,r)=>((async()=>{let i=await t,n=await WebAssembly.instantiate(i,e);r(n,i)})(),{})};window._flutter||(window._flutter={}),window._flutter.loader||(window._flutter.loader=new class{async loadEntrypoint(e){let{serviceWorker:t,...r}=e||{},i=new s,a=new o;a.setTrustedTypesPolicy(i.policy),await a.loadServiceWorker(t).catch(e=>{console.warn("Exception while loading service worker:",e)});let l=new n;return l.setTrustedTypesPolicy(i.policy),this.didCreateEngineInitializer=l.didCreateEngineInitializer.bind(l),l.loadEntrypoint(r)}async load({serviceWorkerSettings:i,onEntrypointLoaded:a,nonce:c,config:d}={}){d??={};let u=_flutter.buildConfig;if(!u)throw"FlutterLoader.load requires _flutter.buildConfig to be set";let p=u.builds.find(t=>!("dart2wasm"===t.compileTarget&&!e.supportsWasmGC||d.renderer&&!((e,t)=>"auto"===e.renderer?"canvaskit"==t||"html"==t:e.renderer==t)(t,d.renderer))&&(t=>"skwasm"!==t||e.crossOriginIsolated&&e.hasChromiumBreakIterators&&e.hasImageCodecs&&e.supportsWasmGC)(t.renderer));if(!p)throw"FlutterLoader could not find a build compatible with configuration and environment.";let w={};w.flutterTT=new s,i&&(w.serviceWorkerLoader=new o,w.serviceWorkerLoader.setTrustedTypesPolicy(w.flutterTT.policy),await w.serviceWorkerLoader.loadServiceWorker(i).catch(e=>{console.warn("Exception while loading service worker:",e)}));let m=function(e,t){return e.canvasKitBaseUrl?e.canvasKitBaseUrl:t.engineRevision&&!t.useLocalCanvasKit?r("https://www.gstatic.com/flutter-canvaskit",t.engineRevision):"canvaskit"}(d,u);"canvaskit"===p.renderer?w.canvasKit=((e,r,i,n)=>(window.flutterCanvasKitLoaded=(async()=>{if(window.flutterCanvasKit)return window.flutterCanvasKit;let a=i.hasChromiumBreakIterators&&i.hasImageCodecs;if(!a&&"chromium"==r.canvasKitVariant)throw"Chromium CanvasKit variant specifically requested, but unsupported in this browser";let o=a&&"full"!==r.canvasKitVariant,s=n;o&&(s=t(s,"chromium"));let c=t(s,"canvaskit.js");e.flutterTT.policy&&(c=e.flutterTT.policy.createScriptURL(c));let d=l(t(s,"canvaskit.wasm")),u=await import(c);return window.flutterCanvasKit=await u.default({instantiateWasm:d}),window.flutterCanvasKit})(),window.flutterCanvasKitLoaded))(w,d,e,m):"skwasm"===p.renderer&&(w.skwasm=(async(e,r,i,n)=>{let a=t(n,"skwasm.js"),o=a;e.flutterTT.policy&&(o=e.flutterTT.policy.createScriptURL(o));let s=l(t(n,"skwasm.wasm"));return await(await import(o)).default({instantiateWasm:s,locateFile:(e,t)=>{let r=t+e;return r.endsWith(".worker.js")?URL.createObjectURL(new Blob([`importScripts('${r}');`],{type:"application/javascript"})):r},mainScriptUrlOrBlob:a})})(w,0,0,m));let f=new n;return f.setTrustedTypesPolicy(w.flutterTT.policy),this.didCreateEngineInitializer=f.didCreateEngineInitializer.bind(f),f.load(p,w,d,c,a)}})})(),window._flutter||(window._flutter={}),_flutter.buildConfig={engineRevision:"c9b9d5780da342eb3f0f5e439a7db06f7d112575",builds:[{compileTarget:"dart2wasm",renderer:"skwasm",mainWasmPath:"main.dart.wasm",jsSupportRuntimePath:"main.dart.mjs"},{compileTarget:"dart2js",renderer:"canvaskit",mainJsPath:"main.dart.js"}]},_flutter.loader.load({serviceWorkerSettings:{serviceWorkerVersion:"1979913339"}});
1
+ (()=>{var e={hasImageCodecs:!(typeof ImageDecoder>"u"||"Google Inc."!==navigator.vendor&&"Edg/"!==navigator.agent),hasChromiumBreakIterators:typeof Intl.v8BreakIterator<"u"&&typeof Intl.Segmenter<"u",supportsWasmGC:WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,95,1,120,0])),crossOriginIsolated:window.crossOriginIsolated};function t(...e){return new URL(r(...e),document.baseURI).toString()}function r(...e){return e.filter(e=>!!e).map((e,t)=>0===t?i(e):function(e){let t=0;for(;t<e.length&&"/"===e.charAt(t);)t++;return e.substring(t)}(i(e))).filter(e=>e.length).join("/")}function i(e){let t=e.length;for(;t>0&&"/"===e.charAt(t-1);)t--;return e.substring(0,t)}var n=class{constructor(){this._scriptLoaded=!1}setTrustedTypesPolicy(e){this._ttPolicy=e}async loadEntrypoint(e){let{entrypointUrl:r=t("main.dart.js"),onEntrypointLoaded:i,nonce:n}=e||{};return this._loadJSEntrypoint(r,i,n)}async load(e,r,i,n,a){a??=e=>{e.initializeEngine(i).then(e=>e.runApp())};let{entryPointBaseUrl:o}=i;if("dart2wasm"===e.compileTarget)return this._loadWasmEntrypoint(e,r,o,a);{let r=t(o,e.mainJsPath??"main.dart.js");return this._loadJSEntrypoint(r,a,n)}}didCreateEngineInitializer(e){"function"==typeof this._didCreateEngineInitializerResolve&&(this._didCreateEngineInitializerResolve(e),this._didCreateEngineInitializerResolve=null,delete _flutter.loader.didCreateEngineInitializer),"function"==typeof this._onEntrypointLoaded&&this._onEntrypointLoaded(e)}_loadJSEntrypoint(e,t,r){let i="function"==typeof t;if(!this._scriptLoaded){this._scriptLoaded=!0;let n=this._createScriptTag(e,r);if(!i)return new Promise((e,t)=>{this._didCreateEngineInitializerResolve=e,n.addEventListener("error",t),document.head.append(n)});this._onEntrypointLoaded=t,document.head.append(n)}}async _loadWasmEntrypoint(e,r,i,n){if(!this._scriptLoaded){this._scriptLoaded=!0,this._onEntrypointLoaded=n;let{mainWasmPath:a,jsSupportRuntimePath:o}=e,s=t(i,a),l=t(i,o);null!=this._ttPolicy&&(l=this._ttPolicy.createScriptURL(l));let c,d=WebAssembly.compileStreaming(fetch(s)),u=await import(l);c="skwasm"===e.renderer?(async()=>{let e=await r.skwasm;return window._flutter_skwasmInstance=e,{skwasm:e.wasmExports,skwasmWrapper:e,ffi:{memory:e.wasmMemory}}})():{};let p=await u.instantiate(d,c);await u.invoke(p)}}_createScriptTag(e,t){let r=document.createElement("script");r.type="application/javascript",t&&(r.nonce=t);let i=e;return null!=this._ttPolicy&&(i=this._ttPolicy.createScriptURL(e)),r.src=i,r}};async function a(e,t,r){if(t<0)return e;let i,n=new Promise((e,n)=>{i=setTimeout(()=>{n(new Error(`${r} took more than ${t}ms to resolve. Moving on.`,{cause:a}))},t)});return Promise.race([e,n]).finally(()=>{clearTimeout(i)})}var o=class{setTrustedTypesPolicy(e){this._ttPolicy=e}loadServiceWorker(e){if(!e)return Promise.resolve();if(!("serviceWorker"in navigator)){let e="Service Worker API unavailable.";return window.isSecureContext||(e+="\nThe current context is NOT secure.",e+="\nRead more: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts"),Promise.reject(new Error(e))}let{serviceWorkerVersion:r,serviceWorkerUrl:i=t(`flutter_service_worker.js?v=${r}`),timeoutMillis:n=4e3}=e,o=i;return null!=this._ttPolicy&&(o=this._ttPolicy.createScriptURL(o)),a(navigator.serviceWorker.register(o).then(e=>this._getNewServiceWorker(e,r)).then(this._waitForServiceWorkerActivation),n,"prepareServiceWorker")}async _getNewServiceWorker(e,t){if(!e.active&&(e.installing||e.waiting))return e.installing||e.waiting;if(e.active.scriptURL.endsWith(t))return e.active;{let t=await e.update();return t.installing||t.waiting||t.active}}async _waitForServiceWorkerActivation(e){if(!e||"activated"===e.state){if(e)return;throw new Error("Cannot activate a null service worker!")}return new Promise((t,r)=>{e.addEventListener("statechange",()=>{"activated"===e.state&&t()})})}},s=class{constructor(e,t="flutter-js"){let r=e||[/\.js$/,/\.mjs$/];window.trustedTypes&&(this.policy=trustedTypes.createPolicy(t,{createScriptURL:function(e){if(e.startsWith("blob:"))return e;let i=new URL(e,window.location),n=i.pathname.split("/").pop();if(r.some(e=>e.test(n)))return i.toString();console.error("URL rejected by TrustedTypes policy",t,":",e,"(download prevented)")}}))}},l=e=>{let t=WebAssembly.compileStreaming(fetch(e));return(e,r)=>((async()=>{let i=await t,n=await WebAssembly.instantiate(i,e);r(n,i)})(),{})};window._flutter||(window._flutter={}),window._flutter.loader||(window._flutter.loader=new class{async loadEntrypoint(e){let{serviceWorker:t,...r}=e||{},i=new s,a=new o;a.setTrustedTypesPolicy(i.policy),await a.loadServiceWorker(t).catch(e=>{console.warn("Exception while loading service worker:",e)});let l=new n;return l.setTrustedTypesPolicy(i.policy),this.didCreateEngineInitializer=l.didCreateEngineInitializer.bind(l),l.loadEntrypoint(r)}async load({serviceWorkerSettings:i,onEntrypointLoaded:a,nonce:c,config:d}={}){d??={};let u=_flutter.buildConfig;if(!u)throw"FlutterLoader.load requires _flutter.buildConfig to be set";let p=u.builds.find(t=>!("dart2wasm"===t.compileTarget&&!e.supportsWasmGC||d.renderer&&!((e,t)=>"auto"===e.renderer?"canvaskit"==t||"html"==t:e.renderer==t)(t,d.renderer))&&(t=>"skwasm"!==t||e.crossOriginIsolated&&e.hasChromiumBreakIterators&&e.hasImageCodecs&&e.supportsWasmGC)(t.renderer));if(!p)throw"FlutterLoader could not find a build compatible with configuration and environment.";let w={};w.flutterTT=new s,i&&(w.serviceWorkerLoader=new o,w.serviceWorkerLoader.setTrustedTypesPolicy(w.flutterTT.policy),await w.serviceWorkerLoader.loadServiceWorker(i).catch(e=>{console.warn("Exception while loading service worker:",e)}));let m=function(e,t){return e.canvasKitBaseUrl?e.canvasKitBaseUrl:t.engineRevision&&!t.useLocalCanvasKit?r("https://www.gstatic.com/flutter-canvaskit",t.engineRevision):"canvaskit"}(d,u);"canvaskit"===p.renderer?w.canvasKit=((e,r,i,n)=>(window.flutterCanvasKitLoaded=(async()=>{if(window.flutterCanvasKit)return window.flutterCanvasKit;let a=i.hasChromiumBreakIterators&&i.hasImageCodecs;if(!a&&"chromium"==r.canvasKitVariant)throw"Chromium CanvasKit variant specifically requested, but unsupported in this browser";let o=a&&"full"!==r.canvasKitVariant,s=n;o&&(s=t(s,"chromium"));let c=t(s,"canvaskit.js");e.flutterTT.policy&&(c=e.flutterTT.policy.createScriptURL(c));let d=l(t(s,"canvaskit.wasm")),u=await import(c);return window.flutterCanvasKit=await u.default({instantiateWasm:d}),window.flutterCanvasKit})(),window.flutterCanvasKitLoaded))(w,d,e,m):"skwasm"===p.renderer&&(w.skwasm=(async(e,r,i,n)=>{let a=t(n,"skwasm.js"),o=a;e.flutterTT.policy&&(o=e.flutterTT.policy.createScriptURL(o));let s=l(t(n,"skwasm.wasm"));return await(await import(o)).default({instantiateWasm:s,locateFile:(e,t)=>{let r=t+e;return r.endsWith(".worker.js")?URL.createObjectURL(new Blob([`importScripts('${r}');`],{type:"application/javascript"})):r},mainScriptUrlOrBlob:a})})(w,0,0,m));let f=new n;return f.setTrustedTypesPolicy(w.flutterTT.policy),this.didCreateEngineInitializer=f.didCreateEngineInitializer.bind(f),f.load(p,w,d,c,a)}})})(),window._flutter||(window._flutter={}),_flutter.buildConfig={engineRevision:"c9b9d5780da342eb3f0f5e439a7db06f7d112575",builds:[{compileTarget:"dart2wasm",renderer:"skwasm",mainWasmPath:"main.dart.wasm",jsSupportRuntimePath:"main.dart.mjs"},{compileTarget:"dart2js",renderer:"canvaskit",mainJsPath:"main.dart.js"}]},_flutter.loader.load({serviceWorkerSettings:{serviceWorkerVersion:"675413291"}});
@@ -1 +1 @@
1
- "use strict";const MANIFEST="flutter-app-manifest",TEMP="flutter-temp-cache",CACHE_NAME="flutter-app-cache",RESOURCES={"manifest.json":"a06b13fcde5dfd1e240278072e116d12","version.json":"1756499d77011c0be564a414e567db76","canvaskit/skwasm.js.symbols":"262f4827a1317abb59d71d6c587a93e2","canvaskit/skwasm.worker.js":"89990e8c92bcb123999aa81f7e203b1c","canvaskit/skwasm.js":"694fda5704053957c2594de355805228","canvaskit/canvaskit.js":"66177750aff65a66cb07bb44b8c6422b","canvaskit/canvaskit.wasm":"1f237a213d7370cf95f443d896176460","canvaskit/chromium/canvaskit.js":"671c6b4f8fcc199dcc551c7bb125f239","canvaskit/chromium/canvaskit.wasm":"b1ac05b29c127d86df4bcfbf50dd902a","canvaskit/chromium/canvaskit.js.symbols":"a012ed99ccba193cf96bb2643003f6fc","canvaskit/canvaskit.js.symbols":"48c83a2ce573d9692e8d970e288d75f7","canvaskit/skwasm.wasm":"9f0c0c02b82a910d12ce0543ec130e60","index.html":"3e66d364efd431f1f59c72d8b080303f","/":"3e66d364efd431f1f59c72d8b080303f","flutter.js":"f393d3c16b631f36852323de8e583132","assets/AssetManifest.bin":"5672adaf69f40004282a9a781fc45ab5","assets/packages/deriv_chart/assets/fonts/quill_icons.ttf":"8e9f63f02fa78152f14dd9b5b5c4e92a","assets/FontManifest.json":"47d2d8f0fc8d1b996ec6f4b9a2302317","assets/NOTICES":"a73f0d601fa6d9e4745b1bbfbf3fec8a","assets/AssetManifest.json":"d178679794c5a50c28e80c4443537202","assets/shaders/ink_sparkle.frag":"ecc85a2e95f5e9f53123dcaf8cb9b6ce","assets/fonts/MaterialIcons-Regular.otf":"d6db5dff634f0098a8fec881f24fa1e7","assets/fonts/IBMPlexSans-Bold.ttf":"403ddc75d4ef790140292b1c0f1c769e","assets/fonts/IBMPlexSans-Regular.ttf":"dbfe87ffcd1ee8f2ba4a8a5e5a8c8295","assets/AssetManifest.bin.json":"5675a7e5472a23fd8b159aab872571cf","main.dart.wasm":"a5442886d09e43f3d2fcfb83318146f4","flutter_bootstrap.js":"adccd16941a77d6d35b3e99efc689160","main.dart.mjs":"cbb1b9c302101c711184ae568b3dcc35","favicon.png":"5dcef449791fa27946b3d35ad8803796","main.dart.js":"da43313cbedf983366ce5c287d236abc"},CORE=["main.dart.js","main.dart.wasm","main.dart.mjs","index.html","flutter_bootstrap.js","assets/AssetManifest.bin.json","assets/FontManifest.json"];async function downloadOffline(){var a=[],e=await caches.open(CACHE_NAME),s={};for(var t of await e.keys()){var c=t.url.substring(origin.length+1);""==c&&(c="/"),s[c]=!0}for(var n of Object.keys(RESOURCES))s[n]||a.push(n);return e.addAll(a)}function onlineFirst(a){return a.respondWith(fetch(a.request).then(e=>caches.open(CACHE_NAME).then(s=>(s.put(a.request,e.clone()),e))).catch(e=>caches.open(CACHE_NAME).then(s=>s.match(a.request).then(a=>{if(null!=a)return a;throw e}))))}self.addEventListener("install",a=>(self.skipWaiting(),a.waitUntil(caches.open(TEMP).then(a=>a.addAll(CORE.map(a=>new Request(a,{cache:"reload"}))))))),self.addEventListener("activate",function(a){return a.waitUntil(async function(){try{var a=await caches.open(CACHE_NAME),e=await caches.open(TEMP),s=await caches.open(MANIFEST),t=await s.match("manifest");if(!t){for(var c of(await caches.delete(CACHE_NAME),a=await caches.open(CACHE_NAME),await e.keys())){var n=await e.match(c);await a.put(c,n)}return await caches.delete(TEMP),await s.put("manifest",new Response(JSON.stringify(RESOURCES))),void self.clients.claim()}var f=await t.json(),i=self.location.origin;for(var c of await a.keys()){var d=c.url.substring(i.length+1);""==d&&(d="/"),RESOURCES[d]&&RESOURCES[d]==f[d]||await a.delete(c)}for(var c of await e.keys()){n=await e.match(c);await a.put(c,n)}return await caches.delete(TEMP),await s.put("manifest",new Response(JSON.stringify(RESOURCES))),void self.clients.claim()}catch(a){console.error("Failed to upgrade service worker: "+a),await caches.delete(CACHE_NAME),await caches.delete(TEMP),await caches.delete(MANIFEST)}}())}),self.addEventListener("fetch",a=>{if("GET"===a.request.method){var e=self.location.origin,s=a.request.url.substring(e.length+1);if(-1!=s.indexOf("?v=")&&(s=s.split("?v=")[0]),(a.request.url==e||a.request.url.startsWith(e+"/#")||""==s)&&(s="/"),RESOURCES[s])return"/"==s?onlineFirst(a):void a.respondWith(caches.open(CACHE_NAME).then(e=>e.match(a.request).then(s=>s||fetch(a.request).then(s=>(s&&Boolean(s.ok)&&e.put(a.request,s.clone()),s)))))}}),self.addEventListener("message",a=>{"skipWaiting"!==a.data?"downloadOffline"!==a.data||downloadOffline():self.skipWaiting()});
1
+ "use strict";const MANIFEST="flutter-app-manifest",TEMP="flutter-temp-cache",CACHE_NAME="flutter-app-cache",RESOURCES={"main.dart.mjs":"94859083c0ee911aa471c738e3297c47","assets/AssetManifest.json":"d178679794c5a50c28e80c4443537202","assets/AssetManifest.bin.json":"5675a7e5472a23fd8b159aab872571cf","assets/packages/deriv_chart/assets/fonts/quill_icons.ttf":"8e9f63f02fa78152f14dd9b5b5c4e92a","assets/shaders/ink_sparkle.frag":"ecc85a2e95f5e9f53123dcaf8cb9b6ce","assets/fonts/IBMPlexSans-Regular.ttf":"dbfe87ffcd1ee8f2ba4a8a5e5a8c8295","assets/fonts/IBMPlexSans-Bold.ttf":"403ddc75d4ef790140292b1c0f1c769e","assets/fonts/MaterialIcons-Regular.otf":"d6db5dff634f0098a8fec881f24fa1e7","assets/AssetManifest.bin":"5672adaf69f40004282a9a781fc45ab5","assets/NOTICES":"a73f0d601fa6d9e4745b1bbfbf3fec8a","assets/FontManifest.json":"47d2d8f0fc8d1b996ec6f4b9a2302317","favicon.png":"5dcef449791fa27946b3d35ad8803796","manifest.json":"a06b13fcde5dfd1e240278072e116d12","index.html":"8cc9c1f7b0f0cbe97e71908afd543d19","/":"8cc9c1f7b0f0cbe97e71908afd543d19","canvaskit/skwasm.js.symbols":"262f4827a1317abb59d71d6c587a93e2","canvaskit/chromium/canvaskit.js.symbols":"a012ed99ccba193cf96bb2643003f6fc","canvaskit/chromium/canvaskit.wasm":"b1ac05b29c127d86df4bcfbf50dd902a","canvaskit/chromium/canvaskit.js":"671c6b4f8fcc199dcc551c7bb125f239","canvaskit/canvaskit.js.symbols":"48c83a2ce573d9692e8d970e288d75f7","canvaskit/skwasm.wasm":"9f0c0c02b82a910d12ce0543ec130e60","canvaskit/canvaskit.wasm":"1f237a213d7370cf95f443d896176460","canvaskit/skwasm.worker.js":"89990e8c92bcb123999aa81f7e203b1c","canvaskit/canvaskit.js":"66177750aff65a66cb07bb44b8c6422b","canvaskit/skwasm.js":"694fda5704053957c2594de355805228","flutter.js":"f393d3c16b631f36852323de8e583132","flutter_bootstrap.js":"71c48f52e5c05e68de683ab0242a0601","main.dart.wasm":"c19b19200d2f57b730d809f2b3912424","main.dart.js":"681b0df43ce0e7485726a0f6fcb98ce9","version.json":"1756499d77011c0be564a414e567db76"},CORE=["main.dart.js","main.dart.wasm","main.dart.mjs","index.html","flutter_bootstrap.js","assets/AssetManifest.bin.json","assets/FontManifest.json"];async function downloadOffline(){var a=[],e=await caches.open(CACHE_NAME),s={};for(var t of await e.keys()){var c=t.url.substring(origin.length+1);""==c&&(c="/"),s[c]=!0}for(var n of Object.keys(RESOURCES))s[n]||a.push(n);return e.addAll(a)}function onlineFirst(a){return a.respondWith(fetch(a.request).then(e=>caches.open(CACHE_NAME).then(s=>(s.put(a.request,e.clone()),e))).catch(e=>caches.open(CACHE_NAME).then(s=>s.match(a.request).then(a=>{if(null!=a)return a;throw e}))))}self.addEventListener("install",a=>(self.skipWaiting(),a.waitUntil(caches.open(TEMP).then(a=>a.addAll(CORE.map(a=>new Request(a,{cache:"reload"}))))))),self.addEventListener("activate",function(a){return a.waitUntil(async function(){try{var a=await caches.open(CACHE_NAME),e=await caches.open(TEMP),s=await caches.open(MANIFEST),t=await s.match("manifest");if(!t){for(var c of(await caches.delete(CACHE_NAME),a=await caches.open(CACHE_NAME),await e.keys())){var n=await e.match(c);await a.put(c,n)}return await caches.delete(TEMP),await s.put("manifest",new Response(JSON.stringify(RESOURCES))),void self.clients.claim()}var f=await t.json(),i=self.location.origin;for(var c of await a.keys()){var d=c.url.substring(i.length+1);""==d&&(d="/"),RESOURCES[d]&&RESOURCES[d]==f[d]||await a.delete(c)}for(var c of await e.keys()){n=await e.match(c);await a.put(c,n)}return await caches.delete(TEMP),await s.put("manifest",new Response(JSON.stringify(RESOURCES))),void self.clients.claim()}catch(a){console.error("Failed to upgrade service worker: "+a),await caches.delete(CACHE_NAME),await caches.delete(TEMP),await caches.delete(MANIFEST)}}())}),self.addEventListener("fetch",a=>{if("GET"===a.request.method){var e=self.location.origin,s=a.request.url.substring(e.length+1);if(-1!=s.indexOf("?v=")&&(s=s.split("?v=")[0]),(a.request.url==e||a.request.url.startsWith(e+"/#")||""==s)&&(s="/"),RESOURCES[s])return"/"==s?onlineFirst(a):void a.respondWith(caches.open(CACHE_NAME).then(e=>e.match(a.request).then(s=>s||fetch(a.request).then(s=>(s&&Boolean(s.ok)&&e.put(a.request,s.clone()),s)))))}}),self.addEventListener("message",a=>{"skipWaiting"!==a.data?"downloadOffline"!==a.data||downloadOffline():self.skipWaiting()});