@chaos-overlords/storage 0.6.0 → 0.7.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mappers.d.ts","sourceRoot":"","sources":["../../src/shared/mappers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mappers.d.ts","sourceRoot":"","sources":["../../src/shared/mappers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,KAAK,EACL,cAAc,EACd,MAAM,EAEN,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,UAAU,EACX,MAAM,yBAAyB,CAAA;AAEhC;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;CACf;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,UAAU,EAAE,IAAI,GAAG,IAAI,CAAA;IACvB,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,EAAE,IAAI,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,UAAU,EAAE,IAAI,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,eAAO,MAAM,OAAO,GAAI,KAAK,QAAQ,KAAG,KActC,CAAA;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK;;;;;;;;;;;;;;;;;;;;;;;CAiBxC,CAAA;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,SAAS,KAAG,MAGxC,CAAA;AAEF,eAAO,MAAM,MAAM,GAAI,KAAK,OAAO,KAAG,IAIpC,CAAA;AAEF,eAAO,MAAM,YAAY,GAAI,KAAK,aAAa,KAAG,UAGhD,CAAA;AAEF,eAAO,MAAM,YAAY,GAAI,KAAK,aAAa,KAAG,UAA0B,CAAA;AAE5E,eAAO,MAAM,UAAU,GAAI,KAAK,WAAW,KAAG,QAG5C,CAAA;AAEF,eAAO,MAAM,OAAO,GAAI,KAAK,QAAQ,KAAG,cAOlB,CAAA;AAEtB,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,MAAM,CAAC,EAAE,KAAG,CAAC,GAAG,IAAuB,CAAA"}
|
package/dist/shared/mappers.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export const toMatch = (row) => ({
|
|
2
2
|
id: row.id,
|
|
3
|
-
protocolVersion: row.protocolVersion,
|
|
3
|
+
protocolVersion: databaseProtocolVersion(row.protocolVersion, 'matches.protocol_version'),
|
|
4
4
|
status: row.status,
|
|
5
5
|
settings: row.settings,
|
|
6
6
|
hostPlayerId: row.hostPlayerId,
|
|
@@ -45,7 +45,10 @@ export const toTurnOrders = (row) => ({
|
|
|
45
45
|
orders: (row.orders ?? null),
|
|
46
46
|
});
|
|
47
47
|
export const toTurnReport = (row) => ({ ...row });
|
|
48
|
-
export const toSnapshot = (row) => ({
|
|
48
|
+
export const toSnapshot = (row) => ({
|
|
49
|
+
...row,
|
|
50
|
+
protocolVersion: databaseProtocolVersion(row.protocolVersion, 'snapshots.protocol_version'),
|
|
51
|
+
});
|
|
49
52
|
export const toEvent = (row) => ({
|
|
50
53
|
matchId: row.matchId,
|
|
51
54
|
seq: row.seq,
|
|
@@ -54,4 +57,22 @@ export const toEvent = (row) => ({
|
|
|
54
57
|
createdAt: row.createdAt.toISOString(),
|
|
55
58
|
});
|
|
56
59
|
export const firstOrNull = (rows) => rows[0] ?? null;
|
|
60
|
+
/**
|
|
61
|
+
* Normalizes a protocol version at the database boundary, before it can leak into a JSON response.
|
|
62
|
+
*
|
|
63
|
+
* Drizzle's static row type describes the schema, but database drivers are still runtime inputs:
|
|
64
|
+
* some expose numeric columns as decimal strings. The public contract deliberately does not accept
|
|
65
|
+
* that representation, so adapters turn it into the one JavaScript number the valibot schema and
|
|
66
|
+
* generated C# record agree on. Invalid or unsafe values fail here instead of reaching a client.
|
|
67
|
+
*/
|
|
68
|
+
function databaseProtocolVersion(value, column) {
|
|
69
|
+
const number = typeof value === 'number'
|
|
70
|
+
? value
|
|
71
|
+
: typeof value === 'string' && /^(0|[1-9]\d*)$/.test(value)
|
|
72
|
+
? Number(value)
|
|
73
|
+
: Number.NaN;
|
|
74
|
+
if (!Number.isInteger(number) || number < 0 || number > 2_147_483_647)
|
|
75
|
+
throw new TypeError(`${column} is not a signed 32-bit protocol version`);
|
|
76
|
+
return number;
|
|
77
|
+
}
|
|
57
78
|
//# sourceMappingURL=mappers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mappers.js","sourceRoot":"","sources":["../../src/shared/mappers.ts"],"names":[],"mappings":"AAoGA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAa,EAAS,EAAE,CAAC,CAAC;IAChD,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,eAAe,EAAE,GAAG,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"mappers.js","sourceRoot":"","sources":["../../src/shared/mappers.ts"],"names":[],"mappings":"AAoGA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAa,EAAS,EAAE,CAAC,CAAC;IAChD,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,eAAe,EAAE,uBAAuB,CAAC,GAAG,CAAC,eAAe,EAAE,0BAA0B,CAAC;IACzF,MAAM,EAAE,GAAG,CAAC,MAAqB;IACjC,QAAQ,EAAE,GAAG,CAAC,QAAyB;IACvC,YAAY,EAAE,GAAG,CAAC,YAAY;IAC9B,QAAQ,EAAE,GAAG,CAAC,QAAQ;IACtB,YAAY,EAAE,GAAG,CAAC,YAAY;IAC9B,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,WAAW,EAAE,GAAG,CAAC,WAAW;IAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;IACxB,WAAW,EAAE,GAAG,CAAC,WAAW;IAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;IACxB,SAAS,EAAE,GAAG,CAAC,SAAS;CACzB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC;IAC9C,EAAE,EAAE,KAAK,CAAC,EAAE;IACZ,eAAe,EAAE,KAAK,CAAC,eAAe;IACtC,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;IACzB,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;IACrC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;IACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,YAAY,EAAE,KAAK,CAAC,YAAY;IAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,YAAY,EAAE,KAAK,CAAC,YAAY;IAChC,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,WAAW,EAAE,KAAK,CAAC,WAAW;IAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;IAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;IAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;IAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;CAC3B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAc,EAAU,EAAE,CAAC,CAAC;IACnD,GAAG,GAAG;IACN,MAAM,EAAE,GAAG,CAAC,MAAsB;CACnC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAY,EAAQ,EAAE,CAAC,CAAC;IAC7C,GAAG,GAAG;IACN,MAAM,EAAE,GAAG,CAAC,MAAoB;IAChC,WAAW,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAiC;CACvE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAkB,EAAc,EAAE,CAAC,CAAC;IAC/D,GAAG,GAAG;IACN,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAyB;CACrD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAkB,EAAc,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAA;AAE5E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAgB,EAAY,EAAE,CAAC,CAAC;IACzD,GAAG,GAAG;IACN,eAAe,EAAE,uBAAuB,CAAC,GAAG,CAAC,eAAe,EAAE,4BAA4B,CAAC;CAC5F,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAa,EAAkB,EAAE,CACvD,CAAC;IACC,OAAO,EAAE,GAAG,CAAC,OAAO;IACpB,GAAG,EAAE,GAAG,CAAC,GAAG;IACZ,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,OAAO,EAAE,GAAG,CAAC,OAAO;IACpB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE;CACvC,CAAmB,CAAA;AAEtB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,IAAS,EAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AAEtE;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,KAAc,EAAE,MAAc;IAC7D,MAAM,MAAM,GACV,OAAO,KAAK,KAAK,QAAQ;QACvB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;YACzD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACf,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA;IAClB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,aAAa;QACnE,MAAM,IAAI,SAAS,CAAC,GAAG,MAAM,0CAA0C,CAAC,CAAA;IAC1E,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chaos-overlords/storage",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "Drizzle schemas and repository implementations of the kernel storage ports: one SQLite dialect shared by better-sqlite3 and Cloudflare D1, and a Postgres dialect.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"chaos-overlords",
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
"provenance": true
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@chaos-overlords/contracts": "0.
|
|
60
|
-
"@chaos-overlords/kernel": "0.
|
|
59
|
+
"@chaos-overlords/contracts": "0.7.1",
|
|
60
|
+
"@chaos-overlords/kernel": "0.7.1",
|
|
61
61
|
"drizzle-orm": "^0.45.2"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"pg": "^8.23.0",
|
|
71
71
|
"typescript": "^5.9.3",
|
|
72
72
|
"vitest": "^4.1.11",
|
|
73
|
-
"@chaos-overlords/conformance": "0.
|
|
73
|
+
"@chaos-overlords/conformance": "0.7.1"
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
|
76
76
|
"better-sqlite3": ">=11",
|