@effectstream/db 0.102.0 → 0.103.0
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.
- package/migrations/assets.ts +31 -28
- package/migrations/readme.md +20 -11
- package/migrations/system-version.ts +2 -1
- package/package.json +6 -6
- package/test/assets-bundle.test.ts +32 -0
package/migrations/assets.ts
CHANGED
|
@@ -1,35 +1,38 @@
|
|
|
1
|
+
// AUTO-GENERATED by scripts/generate-assets.ts - DO NOT EDIT BY HAND.
|
|
2
|
+
// Source list: packages/node-sdk/db/assets-config.json
|
|
3
|
+
// Regenerate with: bun run assets:generate
|
|
1
4
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
content:decodeBase64("
|
|
10
|
-
extension: "sql"
|
|
5
|
+
function decodeBase64(b64: string): Uint8Array {
|
|
6
|
+
return Uint8Array.from(atob(b64), (c) => c.charCodeAt(0));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const bundledObject = {
|
|
10
|
+
files: {
|
|
11
|
+
"system-up-v-0-0-0": {
|
|
12
|
+
content: decodeBase64("Q1JFQVRFIFNDSEVNQSBJRiBOT1QgRVhJU1RTIGVmZmVjdHN0cmVhbTsKCkNSRUFURSBUQUJMRSBlZmZlY3RzdHJlYW0uZWZmZWN0c3RyZWFtX2V4cGVjdGVkX3ZlcnNpb24gKAogIGFwcF92ZXJzaW9uX21ham9yIElOVEVHRVIgTk9UIE5VTEwsCiAgYXBwX3ZlcnNpb25fbWlub3IgSU5URUdFUiBOT1QgTlVMTCwKICBhcHBfdmVyc2lvbl9wYXRjaCBJTlRFR0VSIE5PVCBOVUxMLAogIGVuZ2luZV92ZXJzaW9uX21ham9yIElOVEVHRVIgTk9UIE5VTEwsCiAgZW5naW5lX3ZlcnNpb25fbWlub3IgSU5URUdFUiBOT1QgTlVMTCwKICBlbmdpbmVfdmVyc2lvbl9wYXRjaCBJTlRFR0VSIE5PVCBOVUxMLAogIGJsb2NrX2hlaWdodCBJTlRFR0VSIE5PVCBOVUxMCik7CgpDUkVBVEUgVU5JUVVFIElOREVYIGVmZmVjdHN0cmVhbV9leHBlY3RlZF92ZXJzaW9uX3VuaXF1ZV92ZXJzaW9uX2Jsb2NrX2hlaWdodCAKT04gZWZmZWN0c3RyZWFtLmVmZmVjdHN0cmVhbV9leHBlY3RlZF92ZXJzaW9uIAooYXBwX3ZlcnNpb25fbWFqb3IsIGFwcF92ZXJzaW9uX21pbm9yLCBhcHBfdmVyc2lvbl9wYXRjaCwgCmVuZ2luZV92ZXJzaW9uX21ham9yLCBlbmdpbmVfdmVyc2lvbl9taW5vciwgZW5naW5lX3ZlcnNpb25fcGF0Y2gpOwoKQ1JFQVRFIFRBQkxFIGVmZmVjdHN0cmVhbS5lZmZlY3RzdHJlYW1fdmVyc2lvbl9oaXN0b3J5ICgKICBhcHBfdmVyc2lvbl9tYWpvciBJTlRFR0VSIE5PVCBOVUxMLAogIGFwcF92ZXJzaW9uX21pbm9yIElOVEVHRVIgTk9UIE5VTEwsCiAgYXBwX3ZlcnNpb25fcGF0Y2ggSU5URUdFUiBOT1QgTlVMTCwKICBlbmdpbmVfdmVyc2lvbl9tYWpvciBJTlRFR0VSIE5PVCBOVUxMLAogIGVuZ2luZV92ZXJzaW9uX21pbm9yIElOVEVHRVIgTk9UIE5VTEwsCiAgZW5naW5lX3ZlcnNpb25fcGF0Y2ggSU5URUdFUiBOT1QgTlVMTCwKICBibG9ja19oZWlnaHQgSU5URUdFUiBOT1QgTlVMTAopOwoKQ1JFQVRFIFVOSVFVRSBJTkRFWCBlZmZlY3RzdHJlYW1fdmVyc2lvbl9oaXN0b3J5X3VuaXF1ZV92ZXJzaW9uX2Jsb2NrX2hlaWdodCAKT04gZWZmZWN0c3RyZWFtLmVmZmVjdHN0cmVhbV92ZXJzaW9uX2hpc3RvcnkgCihhcHBfdmVyc2lvbl9tYWpvciwgYXBwX3ZlcnNpb25fbWlub3IsIGFwcF92ZXJzaW9uX3BhdGNoLCAKZW5naW5lX3ZlcnNpb25fbWFqb3IsIGVuZ2luZV92ZXJzaW9uX21pbm9yLCBlbmdpbmVfdmVyc2lvbl9wYXRjaCk7CgpDUkVBVEUgVEFCTEUgZWZmZWN0c3RyZWFtLmVmZmVjdHN0cmVhbV9taWdyYXRpb25faGlzdG9yeSAoCiAgbmFtZSBURVhUIE5PVCBOVUxMLAogIGJsb2NrX2hlaWdodCBJTlRFR0VSIE5PVCBOVUxMLAogIGlzX3N5c3RlbV9taWdyYXRpb24gQk9PTEVBTiBOT1QgTlVMTAopOwoK"),
|
|
13
|
+
extension: "sql",
|
|
14
|
+
},
|
|
15
|
+
"system-up-v-0-0-1": {
|
|
16
|
+
content: decodeBase64("Q1JFQVRFIFNDSEVNQSBJRiBOT1QgRVhJU1RTIGVmZmVjdHN0cmVhbTsKQ1JFQVRFIFNDSEVNQSBJRiBOT1QgRVhJU1RTIHByaW1pdGl2ZXM7CgpDUkVBVEUgVEFCTEUgZWZmZWN0c3RyZWFtLmVmZmVjdHN0cmVhbV9ibG9ja3MgKAogIGJsb2NrX2hlaWdodCBJTlRFR0VSIFBSSU1BUlkgS0VZLAogIHZlciBJTlRFR0VSIE5PVCBOVUxMLAogIG1haW5fY2hhaW5fYmxvY2tfaGFzaCBCWVRFQSBOT1QgTlVMTCwKICBzZWVkIFRFWFQgTk9UIE5VTEwsCiAgbXNfdGltZXN0YW1wIFRJTUVTVEFNUCB3aXRob3V0IHRpbWUgem9uZSBOT1QgTlVMTCwKICBlZmZlY3RzdHJlYW1fYmxvY2tfaGFzaCBCWVRFQQopOwoKQ1JFQVRFIFRBQkxFIGVmZmVjdHN0cmVhbS5yb2xsdXBfaW5wdXRzICgKICBpZCBTRVJJQUwgUFJJTUFSWSBLRVksCiAgZnJvbV9hZGRyZXNzIFRFWFQgTk9UIE5VTEwsCiAgZnJvbV9hZGRyZXNzX3R5cGUgSU5URUdFUiBOT1QgTlVMTCwKICBpbnB1dF9kYXRhIFRFWFQgTk9UIE5VTEwKKTsKCkNSRUFURSBUQUJMRSBlZmZlY3RzdHJlYW0ucm9sbHVwX2lucHV0X2Z1dHVyZV9ibG9jayAoCiAgaWQgSU5URUdFUiBQUklNQVJZIEtFWSBSRUZFUkVOQ0VTIGVmZmVjdHN0cmVhbS5yb2xsdXBfaW5wdXRzKGlkKSBPTiBERUxFVEUgQ0FTQ0FERSwKICBmdXR1cmVfYmxvY2tfaGVpZ2h0IElOVEVHRVIgTk9UIE5VTEwKKTsKQ1JFQVRFIFRBQkxFIGVmZmVjdHN0cmVhbS5yb2xsdXBfaW5wdXRfZnV0dXJlX3RpbWVzdGFtcCAoCiAgaWQgSU5URUdFUiBQUklNQVJZIEtFWSBSRUZFUkVOQ0VTIGVmZmVjdHN0cmVhbS5yb2xsdXBfaW5wdXRzKGlkKSBPTiBERUxFVEUgQ0FTQ0FERSwKICBmdXR1cmVfbXNfdGltZXN0YW1wIFRJTUVTVEFNUCB3aXRob3V0IHRpbWUgem9uZSBOT1QgTlVMTAopOwoKQ1JFQVRFIFRBQkxFIGVmZmVjdHN0cmVhbS5yb2xsdXBfaW5wdXRfcmVzdWx0ICgKICBpZCBJTlRFR0VSIFBSSU1BUlkgS0VZIFJFRkVSRU5DRVMgZWZmZWN0c3RyZWFtLnJvbGx1cF9pbnB1dHMoaWQpIE9OIERFTEVURSBDQVNDQURFLAogIHN1Y2Nlc3MgQk9PTEVBTiBOT1QgTlVMTCwKICBlZmZlY3RzdHJlYW1fdHhfaGFzaCBCWVRFQSBOT1QgTlVMTCwKICBibG9ja19oZWlnaHQgSU5URUdFUiBOT1QgTlVMTCBSRUZFUkVOQ0VTIGVmZmVjdHN0cmVhbS5lZmZlY3RzdHJlYW1fYmxvY2tzKGJsb2NrX2hlaWdodCksCiAgaW5kZXhfaW5fYmxvY2sgSU5URUdFUiBOT1QgTlVMTAopOwoKQ1JFQVRFIFRBQkxFIGVmZmVjdHN0cmVhbS5yb2xsdXBfaW5wdXRfb3JpZ2luICgKICBpZCBJTlRFR0VSIFBSSU1BUlkgS0VZIFJFRkVSRU5DRVMgZWZmZWN0c3RyZWFtLnJvbGx1cF9pbnB1dHMoaWQpIE9OIERFTEVURSBDQVNDQURFLAogIHByaW1pdGl2ZV9uYW1lIFRFWFQsCiAgY2FpcDIgVEVYVCwKICB0eF9oYXNoIEJZVEVBLAogIGNvbnRyYWN0X2FkZHJlc3MgVEVYVAopOwoKQ1JFQVRFIFRBQkxFIGVmZmVjdHN0cmVhbS5wcmltaXRpdmVfYWNjb3VudGluZyAoCiAgcHJpbWl0aXZlX25hbWUgVEVYVCBOT1QgTlVMTCwKICBpZCBTRVJJQUwsCiAgZWZmZWN0c3RyZWFtX2Jsb2NrX2hlaWdodCBJTlRFR0VSIE5PVCBOVUxMIFJFRkVSRU5DRVMgZWZmZWN0c3RyZWFtLmVmZmVjdHN0cmVhbV9ibG9ja3MoYmxvY2tfaGVpZ2h0KSwKICBwYXlsb2FkX3R5cGUgVEVYVCBOT1QgTlVMTCwKICBwYXlsb2FkIEpTT04gTk9UIE5VTEwsCiAgcGF5bG9hZF9oYXNoIFRFWFQgR0VORVJBVEVEIEFMV0FZUyBBUyAobWQ1KHBheWxvYWQ6OnRleHQpKSBTVE9SRUQsCiAgUFJJTUFSWSBLRVkgKHByaW1pdGl2ZV9uYW1lLCBpZCkKKTsKCkNSRUFURSBUQUJMRSBlZmZlY3RzdHJlYW0ubm9uY2VzICgKICBub25jZSBURVhUIFBSSU1BUlkgS0VZLAogIGJsb2NrX2hlaWdodCBJTlRFR0VSIE5PVCBOVUxMIFJFRkVSRU5DRVMgZWZmZWN0c3RyZWFtLmVmZmVjdHN0cmVhbV9ibG9ja3MoYmxvY2tfaGVpZ2h0KQopOwoKQ1JFQVRFIFRBQkxFIGVmZmVjdHN0cmVhbS5zeW5jX3Byb3RvY29sX3BhZ2luYXRpb24gKAogIHByb3RvY29sX25hbWUgVEVYVCBOT1QgTlVMTCwKICBwYWdlX251bWJlciBJTlRFR0VSIE5PVCBOVUxMLAogIHBhZ2UgSlNPTkIgTk9UIE5VTEwsCiAgUFJJTUFSWSBLRVkgKHByb3RvY29sX25hbWUsIHBhZ2VfbnVtYmVyKQopOwoKQ1JFQVRFIElOREVYIHN5bmNfcHJvdG9jb2xfcGFnaW5hdGlvbl9wYWdlX251bWJlcl9pZHggb24gZWZmZWN0c3RyZWFtLnN5bmNfcHJvdG9jb2xfcGFnaW5hdGlvbihwcm90b2NvbF9uYW1lLCBwYWdlX251bWJlcik7CgpDUkVBVEUgVEFCTEUgZWZmZWN0c3RyZWFtLnByaW1pdGl2ZV9jb25maWcgKAogIHByaW1pdGl2ZV9uYW1lIFRFWFQgUFJJTUFSWSBLRVksCiAgcHJpbWl0aXZlX3R5cGUgVEVYVCBOT1QgTlVMTCwKICBwcmltaXRpdmVfY2FpcDIgVEVYVCBOT1QgTlVMTCwKICBwcm90b2NvbF9uYW1lIFRFWFQgTk9UIE5VTEwsCiAgY29uZmlnIEpTT05CIE5PVCBOVUxMLAogIGNvbmZpZ19oYXNoIElOVEVHRVIgTk9UIE5VTEwsCiAgcGFyZW50X25hbWUgVEVYVAopOwoKQ1JFQVRFIFRBQkxFIGVmZmVjdHN0cmVhbS5hY2NvdW50cyAoCiAgaWQgU0VSSUFMIFBSSU1BUlkgS0VZLAogIHByaW1hcnlfYWRkcmVzcyBURVhUCik7CgpDUkVBVEUgVEFCTEUgZWZmZWN0c3RyZWFtLmFkZHJlc3NlcyAoCiAgYWRkcmVzcyBURVhUIE5PVCBOVUxMIFVOSVFVRSwKICBhZGRyZXNzX3R5cGUgSU5URUdFUiBOT1QgTlVMTCwKICBhY2NvdW50X2lkIElOVEVHRVIgUkVGRVJFTkNFUyBlZmZlY3RzdHJlYW0uYWNjb3VudHMoaWQpCik7CgpDUkVBVEUgSU5ERVggYWRkcmVzc2VzX2FjY291bnRfaWRfaWR4IE9OIGVmZmVjdHN0cmVhbS5hZGRyZXNzZXMoYWNjb3VudF9pZCk7CgpBTFRFUiBUQUJMRSBlZmZlY3RzdHJlYW0uYWNjb3VudHMgQUREIENPTlNUUkFJTlQgZmtfcHJpbWFyeV9hZGRyZXNzX2FkZHJlc3MgRk9SRUlHTiBLRVkgKHByaW1hcnlfYWRkcmVzcykgUkVGRVJFTkNFUyBlZmZlY3RzdHJlYW0uYWRkcmVzc2VzKGFkZHJlc3MpOwoKQ1JFQVRFIFRBQkxFIGVmZmVjdHN0cmVhbS5hY2hpZXZlbWVudF9wcm9ncmVzcygKICBhY2NvdW50X2lkIElOVEVHRVIgTk9UIE5VTEwgUkVGRVJFTkNFUyBlZmZlY3RzdHJlYW0uYWNjb3VudHMoaWQpLAogIG5hbWUgVEVYVCBOT1QgTlVMTCwKICBjb21wbGV0ZWRfZGF0ZSBUSU1FU1RBTVAsCiAgcHJvZ3Jlc3MgSU5URUdFUiwKICB0b3RhbCBJTlRFR0VSLAogIFBSSU1BUlkgS0VZIChhY2NvdW50X2lkLCBuYW1lKQopOwoKQ1JFQVRFIFRBQkxFIGVmZmVjdHN0cmVhbS5ldmVudCAoCiAgaWQgU0VSSUFMIFBSSU1BUlkgS0VZLAogIHRvcGljIFRFWFQgTk9UIE5VTEwsCiAgYWRkcmVzcyBURVhUIE5PVCBOVUxMLAogIGRhdGEgSlNPTkIgTk9UIE5VTEwsCiAgYmxvY2tfaGVpZ2h0IElOVEVHRVIgTk9UIE5VTEwsCiAgdHhfaW5kZXggSU5URUdFUiBOT1QgTlVMTCwKICBsb2dfaW5kZXggSU5URUdFUiBOT1QgTlVMTAopOwoKQ1JFQVRFIFRBQkxFIGVmZmVjdHN0cmVhbS5yZWdpc3RlcmVkX2V2ZW50ICgKICBuYW1lIFRFWFQgTk9UIE5VTEwsCiAgdG9waWMgVEVYVCBOT1QgTlVMTCwKICBQUklNQVJZIEtFWShuYW1lLCB0b3BpYykKKTsK"),
|
|
17
|
+
extension: "sql",
|
|
11
18
|
},
|
|
12
|
-
"system-up-v-0-0-
|
|
13
|
-
content:decodeBase64("
|
|
14
|
-
extension: "sql"
|
|
19
|
+
"system-up-v-0-0-2": {
|
|
20
|
+
content: decodeBase64("LS0gRW5mb3JjZSB1bmlxdWVuZXNzIGZvciBtaWdyYXRpb24gaGlzdG9yeSBlbnRyaWVzCkNSRUFURSBVTklRVUUgSU5ERVggSUYgTk9UIEVYSVNUUyBlZmZlY3RzdHJlYW1fbWlncmF0aW9uX2hpc3RvcnlfdW5pcXVlX25hbWVfc3lzdGVtCk9OIGVmZmVjdHN0cmVhbS5lZmZlY3RzdHJlYW1fbWlncmF0aW9uX2hpc3RvcnkgKG5hbWUsIGlzX3N5c3RlbV9taWdyYXRpb24pOwoKLS0gQWRkIGlkZW1wb3RlbmN5IHN1cHBvcnQgZm9yIHByaW1pdGl2ZSBhY2NvdW50aW5nIGVudHJpZXMKRE8gJCQKQkVHSU4KICBJRiBOT1QgRVhJU1RTICgKICAgIFNFTEVDVCAxCiAgICBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zCiAgICBXSEVSRSB0YWJsZV9zY2hlbWEgPSAnZWZmZWN0c3RyZWFtJwogICAgICBBTkQgdGFibGVfbmFtZSA9ICdwcmltaXRpdmVfYWNjb3VudGluZycKICAgICAgQU5EIGNvbHVtbl9uYW1lID0gJ3BheWxvYWRfaGFzaCcKICApIFRIRU4KICAgIEFMVEVSIFRBQkxFIGVmZmVjdHN0cmVhbS5wcmltaXRpdmVfYWNjb3VudGluZwogICAgICBBREQgQ09MVU1OIHBheWxvYWRfaGFzaCBURVhUIEdFTkVSQVRFRCBBTFdBWVMgQVMgKG1kNShwYXlsb2FkOjp0ZXh0KSkgU1RPUkVEOwogIEVORCBJRjsKRU5ECiQkOwoKQ1JFQVRFIFVOSVFVRSBJTkRFWCBJRiBOT1QgRVhJU1RTIHByaW1pdGl2ZV9hY2NvdW50aW5nX3VuaXF1ZV9wYXlsb2FkX3Blcl9ibG9jawpPTiBlZmZlY3RzdHJlYW0ucHJpbWl0aXZlX2FjY291bnRpbmcgKHByaW1pdGl2ZV9uYW1lLCBlZmZlY3RzdHJlYW1fYmxvY2tfaGVpZ2h0LCBwYXlsb2FkX2hhc2gpOwo="),
|
|
21
|
+
extension: "sql",
|
|
15
22
|
},
|
|
16
|
-
"system-up-v-0-
|
|
17
|
-
content:decodeBase64("
|
|
18
|
-
extension: "sql"
|
|
23
|
+
"system-up-v-0-8-1": {
|
|
24
|
+
content: decodeBase64("Q1JFQVRFIFRBQkxFIGVmZmVjdHN0cmVhbS5zeW5jX3Byb3RvY29sX2NvbmZpZ19zbmFwc2hvdCAoCiAgcHJvdG9jb2xfbmFtZSBURVhUIFBSSU1BUlkgS0VZLAogIG5ldHdvcmtfdHlwZSBURVhUIE5PVCBOVUxMLAogIGltbXV0YWJsZV9jb25maWcgSlNPTkIgTk9UIE5VTEwKKTsK"),
|
|
25
|
+
extension: "sql",
|
|
19
26
|
},
|
|
20
|
-
"system-
|
|
21
|
-
content:decodeBase64("
|
|
22
|
-
extension: "sql"
|
|
27
|
+
"system-down-v-0-0-0": {
|
|
28
|
+
content: decodeBase64("RFJPUCBUQUJMRSBlZmZlY3RzdHJlYW0uZWZmZWN0c3RyZWFtX3ZlcnNpb25faGlzdG9yeTsKRFJPUCBUQUJMRSBlZmZlY3RzdHJlYW0uZWZmZWN0c3RyZWFtX21pZ3JhdGlvbl9oaXN0b3J5Ow=="),
|
|
29
|
+
extension: "sql",
|
|
23
30
|
},
|
|
24
|
-
"system-down-v-0-0-
|
|
25
|
-
content:decodeBase64("
|
|
26
|
-
extension: "sql"
|
|
31
|
+
"system-down-v-0-0-1": {
|
|
32
|
+
content: decodeBase64("RFJPUCBUQUJMRSBlZmZlY3RzdHJlYW0uZWZmZWN0c3RyZWFtX2Jsb2NrczsKRFJPUCBUQUJMRSBlZmZlY3RzdHJlYW0ucm9sbHVwX2lucHV0czsKRFJPUCBUQUJMRSBlZmZlY3RzdHJlYW0ucm9sbHVwX2lucHV0X2Z1dHVyZV9ibG9jazsKRFJPUCBUQUJMRSBlZmZlY3RzdHJlYW0ucm9sbHVwX2lucHV0X2Z1dHVyZV90aW1lc3RhbXA7CkRST1AgVEFCTEUgZWZmZWN0c3RyZWFtLnJvbGx1cF9pbnB1dF9yZXN1bHQ7CkRST1AgVEFCTEUgZWZmZWN0c3RyZWFtLnJvbGx1cF9pbnB1dF9vcmlnaW47CkRST1AgVEFCTEUgZWZmZWN0c3RyZWFtLm5vbmNlczsKRFJPUCBUQUJMRSBlZmZlY3RzdHJlYW0uc3luY19wcm90b2NvbF9wYWdpbmF0aW9uOwpEUk9QIFRBQkxFIGVmZmVjdHN0cmVhbS5wcmltaXRpdmVfY29uZmlnOwpEUk9QIFRBQkxFIGVmZmVjdHN0cmVhbS5hZGRyZXNzZXM7CkRST1AgVEFCTEUgZWZmZWN0c3RyZWFtLmRlbGVnYXRpb25zOwpEUk9QIFRBQkxFIGVmZmVjdHN0cmVhbS5hY2hpZXZlbWVudF9wcm9ncmVzczsKRFJPUCBUQUJMRSBlZmZlY3RzdHJlYW0uZXZlbnQ7CkRST1AgVEFCTEUgZWZmZWN0c3RyZWFtLnJlZ2lzdGVyZWRfZXZlbnQ7Cg=="),
|
|
33
|
+
extension: "sql",
|
|
27
34
|
},
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
extension: "sql"
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
export default bundledObject;
|
|
35
|
+
},
|
|
36
|
+
};
|
|
35
37
|
|
|
38
|
+
export default bundledObject;
|
package/migrations/readme.md
CHANGED
|
@@ -17,21 +17,30 @@ E.g.,
|
|
|
17
17
|
|
|
18
18
|
### Version
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
cannot read
|
|
20
|
+
`EFFECTSTREAM_ENGINE_VERSION` in `system-version.ts` is the System Version - it
|
|
21
|
+
decides which migrations get applied. It is hardcoded there because the engine
|
|
22
|
+
cannot read a package manifest at runtime, so it must be bumped by hand whenever
|
|
23
|
+
a migration for a new version is added.
|
|
23
24
|
|
|
24
|
-
###
|
|
25
|
+
### `assets.ts`
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
The `.sql` files in this directory are not readable at runtime once the package
|
|
28
|
+
is published, so they are inlined into `assets.ts` as base64. **`assets.ts` is
|
|
29
|
+
generated - never edit it by hand.** After adding or changing a `.sql` file,
|
|
30
|
+
list it in `../assets-config.json` (if new) and regenerate from the repo root:
|
|
28
31
|
|
|
29
|
-
```
|
|
30
|
-
|
|
32
|
+
```bash
|
|
33
|
+
bun run assets:generate
|
|
31
34
|
```
|
|
32
35
|
|
|
33
|
-
|
|
36
|
+
To verify the bundle matches the `.sql` sources without rewriting it:
|
|
34
37
|
|
|
38
|
+
```bash
|
|
39
|
+
bun run assets:check
|
|
35
40
|
```
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
|
|
42
|
+
The generator is [`scripts/generate-assets.ts`](../../../../scripts/generate-assets.ts).
|
|
43
|
+
It replaced `deno run jsr:@codemonument/asset-builder`, whose current versions
|
|
44
|
+
emit an import of `jsr:@std/encoding` that Bun cannot resolve. `assets:check`
|
|
45
|
+
also runs in CI, and `test/assets-bundle.test.ts` asserts each bundled entry
|
|
46
|
+
still matches its `.sql` file.
|
|
@@ -11,7 +11,8 @@ import {
|
|
|
11
11
|
} from "@effectstream/db";
|
|
12
12
|
type VERSION = `${number}.${number}.${number}`;
|
|
13
13
|
type VERSION_NUMBER = [number, number, number];
|
|
14
|
-
// NOTE
|
|
14
|
+
// NOTE Hardcoded on purpose: the engine cannot read a package manifest at
|
|
15
|
+
// runtime. Bump this by hand when adding a migration for a new version.
|
|
15
16
|
export const EFFECTSTREAM_ENGINE_VERSION: VERSION = "0.8.1";
|
|
16
17
|
|
|
17
18
|
export { applyMigrations } from "../scripts/apply-migrations.ts";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effectstream/db",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.103.0",
|
|
4
4
|
"license": "(MIT OR Apache-2.0)",
|
|
5
5
|
"homepage": "https://effectstream.github.io/docs/",
|
|
6
6
|
"repository": {
|
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
"./version": "./migrations/system-version.ts"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@effectstream/coroutine": "0.
|
|
25
|
-
"@effectstream/log": "0.
|
|
26
|
-
"@effectstream/runtime": "0.
|
|
27
|
-
"@effectstream/sync": "0.
|
|
28
|
-
"@effectstream/utils": "0.
|
|
24
|
+
"@effectstream/coroutine": "0.103.0",
|
|
25
|
+
"@effectstream/log": "0.103.0",
|
|
26
|
+
"@effectstream/runtime": "0.103.0",
|
|
27
|
+
"@effectstream/sync": "0.103.0",
|
|
28
|
+
"@effectstream/utils": "0.103.0",
|
|
29
29
|
"@electric-sql/pglite": "^0.3.14",
|
|
30
30
|
"@pgtyped/runtime": "2.4.2",
|
|
31
31
|
"@pgtyped/parser": "2.4.2",
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// `migrations/assets.ts` inlines the .sql migrations as base64 so they survive
|
|
2
|
+
// publishing. It used to be regenerated by hand, and drifted: the bundled
|
|
3
|
+
// system-up-v-0.0.0 still carried a `CREATE EXTENSION pg_ivm` long after it was
|
|
4
|
+
// deleted from the .sql file, which broke the ALLOW_NO_PG_IVM fallback on real
|
|
5
|
+
// Postgres. Regenerate with `bun run assets:generate` from the repo root.
|
|
6
|
+
|
|
7
|
+
import { test, expect } from "bun:test";
|
|
8
|
+
import { readFileSync } from "node:fs";
|
|
9
|
+
import { resolve } from "node:path";
|
|
10
|
+
|
|
11
|
+
import bundle from "../migrations/assets.ts";
|
|
12
|
+
|
|
13
|
+
const PACKAGE_ROOT = resolve(import.meta.dir, "..");
|
|
14
|
+
|
|
15
|
+
const config: { files: { importPath: string; calledName: string }[] } =
|
|
16
|
+
JSON.parse(readFileSync(resolve(PACKAGE_ROOT, "assets-config.json"), "utf8"));
|
|
17
|
+
|
|
18
|
+
test("every configured migration is present in the bundle", () => {
|
|
19
|
+
expect(Object.keys(bundle.files).sort()).toEqual(
|
|
20
|
+
config.files.map((f) => f.calledName).sort(),
|
|
21
|
+
);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
for (const file of config.files) {
|
|
25
|
+
test(`bundled ${file.calledName} matches ${file.importPath}`, () => {
|
|
26
|
+
const source = readFileSync(resolve(PACKAGE_ROOT, file.importPath), "utf8");
|
|
27
|
+
const bundled = new TextDecoder().decode(
|
|
28
|
+
bundle.files[file.calledName as keyof typeof bundle.files].content,
|
|
29
|
+
);
|
|
30
|
+
expect(bundled).toBe(source);
|
|
31
|
+
});
|
|
32
|
+
}
|