- 公式に、マイグレの方法が書いてあった
- Pythonに、変換パッケージがあるらしい
- 手作業で書き換えることも可能らしい
- 変換したMySQLダンプファイルを、本番MySQLにインポート
- ローカルにディレクトリを作り、Docker PullでVaultwardenの公式イメージを落としてくる
- Dockerを起動し、Vaultwardenイメージを実行
- ローカルで問題なく動くことを確認
// chrome.runtime.onInstalled.addListener(() => { | |
// console.log("Extension installed!"); | |
// }); | |
// src/background/service-worker.js | |
let myVariable = "This is a variable from the background script."; | |
chrome.runtime.onMessage.addListener((request, _sender, sendResponse) => { | |
if (request.action === "getVariable") { |
<script setup lang="ts"> | |
import Sidebar from './components/Sidebar.vue'; | |
import { onMounted, ref } from 'vue'; | |
const fontSize = ref(100); // 初期フォントサイズを100% | |
// 初期値をストレージから取得 | |
onMounted(() => { | |
chrome.storage.local.get(['fontSize'], (result) => { | |
fontSize.value = result.fontSize || 100; |
const title = document.querySelector('h1') | |
if(title) { | |
title.style.color = 'red' | |
} | |
// interface Request { | |
// fontSize: number; | |
// } | |
// // 例えば、requestを以下のように定義する |
const delayFunc = (ms: number) => | |
new Promise((resolve) => setTimeout(resolve, ms)); | |
const syncronusProcess = async ( | |
flag: string | undefined, | |
time: number = 1000, | |
iteration: number = 4, | |
) => { | |
let i = 1; | |
while (i <= iteration) { |
// テストにはJestを使用 | |
import { createRandom } from "../functions/helpers"; | |
describe('Create random number between two value: Normal Pattern', () => { | |
test('Return random value is correct', () => { | |
const min = 1; | |
const max = 5; | |
expect(createRandom(min, max)).toBeLessThanOrEqual(max) | |
expect(createRandom(min, max)).toBeGreaterThanOrEqual(min) |
// 配列をランダムに出力したいときの添字出力用 | |
// バリデーションには、Joiを使用 | |
// 負の値、小数点には対応しない | |
import Joi from 'joi' | |
const schema = Joi.object().keys({ | |
min: Joi.number().min(0), | |
max: Joi.number().positive() | |
}) |
javascript:(()%3D%3E%7B(A%3D%3E%7Bconst%20I%3Ddocument.createElement(%22script%22)%3BI.src%3D%22https%3A%2F%2Fcdnjs.cloudflare.com%2Fajax%2Flibs%2Fpush.js%2F0.0.11%2Fpush.min.js%22%2CI.onload%3Dasync()%3D%3E%7Bawait%20A(Push)%7D%2Cdocument.body.appendChild(I)%7D)(((A%2CI)%3D%3E%7Bconst%20C%3D()%3D%3E%7Bconst%20I%3Ddocument.querySelectorAll(%22.status%22)%3Blet%20C%3D%5B%5D%3BI.forEach((A%3D%3E%7BC.push(A)%7D))%3Bconst%20g%3DC.filter((A%3D%3E%22%E5%AE%8C%E4%BA%86%EF%BC%81%22%3D%3D%3DA.textContent))%3Bif(I.length%3D%3D%3Dg.length%26%26I.length%3E0)%7BA.create(%22%E3%82%A2%E3%83%83%E3%83%97%E5%AE%8C%E4%BA%86%22%2C%7Bbody%3A%22%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%81%8C%E5%85%A8%E3%81%A6%E5%AE%8C%E4%BA%86%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%EF%BC%81%22%2Cicon%3A%22https%3A%2F%2Fgigafile.nu%2Ffavicon.ico%22%2Ctimeout%3A1e4%2ConClick%3A()%3D%3Ethis.close()%7D)%3Bnew%20Audio(%22data%3Aaudio%2Fmp3%3Bbase64%2C%22%2B%22SUQzAwAAAAAxKVBSSVYAABCfAABYTVAAPD94cGFja2V0I |
void((f => { | |
// Push.jsをCDNから読み込み | |
const script = document.createElement('script') | |
script.src = 'https://cdnjs.cloudflare.com/ajax/libs/push.js/0.0.11/push.min.js' | |
script.onload = async () => { | |
await f(Push) | |
} |
<!-- /packages/test_package/db.xml --> | |
<?xml version="1.0"?> | |
<schema version="0.3"> | |
<table name="YoutubeAPIKey"> | |
<field name="apikey" type="X2"> | |
</field> | |
</table> | |
</schema> |