@machinemetrics/mm-erp-sdk 0.9.6-beta.1 → 0.9.6-beta.2
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/dist/migrations/20260617160000_create_sdk_runtime_state_table.d.ts.map +1 -1
- package/dist/migrations/20260617160000_create_sdk_runtime_state_table.js +4 -0
- package/dist/migrations/20260617160000_create_sdk_runtime_state_table.js.map +1 -1
- package/dist/utils/application-initializer.js +5 -5
- package/dist/utils/application-initializer.js.map +1 -1
- package/package.json +1 -1
- package/src/migrations/20260617160000_create_sdk_runtime_state_table.ts +4 -0
- package/src/utils/application-initializer.ts +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"20260617160000_create_sdk_runtime_state_table.d.ts","sourceRoot":"","sources":["../../src/migrations/20260617160000_create_sdk_runtime_state_table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"20260617160000_create_sdk_runtime_state_table.d.ts","sourceRoot":"","sources":["../../src/migrations/20260617160000_create_sdk_runtime_state_table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAUlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"20260617160000_create_sdk_runtime_state_table.js","sourceRoot":"","sources":["../../src/migrations/20260617160000_create_sdk_runtime_state_table.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3D,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAClC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;AACnD,CAAC"}
|
|
1
|
+
{"version":3,"file":"20260617160000_create_sdk_runtime_state_table.js","sourceRoot":"","sources":["../../src/migrations/20260617160000_create_sdk_runtime_state_table.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAC/D,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IACD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3D,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAClC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -18,14 +18,14 @@ export class ApplicationInitializer {
|
|
|
18
18
|
// Load and validate core configuration
|
|
19
19
|
const coreConfig = CoreConfiguration.inst();
|
|
20
20
|
logger.info("Core Configuration loaded:", coreConfig.toSafeLogObject());
|
|
21
|
-
//
|
|
22
|
-
|
|
23
|
-
await SQLiteCoordinator.performStartupCheck();
|
|
24
|
-
logger.info("Database startup checks completed successfully");
|
|
25
|
-
// Run database migrations to ensure all tables exist
|
|
21
|
+
// Migrations first: runtime-state reads (startup lock check) use sdk_runtime_state,
|
|
22
|
+
// which must exist via migrate.latest before any lazy CREATE TABLE IF NOT EXISTS runs.
|
|
26
23
|
logger.info("Running database migrations...");
|
|
27
24
|
await ApplicationInitializer.runMigrations();
|
|
28
25
|
logger.info("Database migrations completed successfully");
|
|
26
|
+
logger.info("Performing database startup checks...");
|
|
27
|
+
await SQLiteCoordinator.performStartupCheck();
|
|
28
|
+
logger.info("Database startup checks completed successfully");
|
|
29
29
|
// Loads company info from MM into memory + SQLite runtime state (timezone, locationRef, companyId).
|
|
30
30
|
// Retries until success; failure aborts init. Confirms the MM API token works for /accounts/current.
|
|
31
31
|
await ensureCompanyInfo();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-initializer.js","sourceRoot":"","sources":["../../src/utils/application-initializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,gBAAgB,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,sBAAsB;IACjC;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU;QAC5B,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CACT,8FAA8F,CAC/F,CAAC;YAEF,uCAAuC;YACvC,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;YAExE,
|
|
1
|
+
{"version":3,"file":"application-initializer.js","sourceRoot":"","sources":["../../src/utils/application-initializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,gBAAgB,CAAC;AAEpC;;GAEG;AACH,MAAM,OAAO,sBAAsB;IACjC;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU;QAC5B,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CACT,8FAA8F,CAC/F,CAAC;YAEF,uCAAuC;YACvC,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;YAExE,oFAAoF;YACpF,uFAAuF;YACvF,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC9C,MAAM,sBAAsB,CAAC,aAAa,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAE1D,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YACrD,MAAM,iBAAiB,CAAC,mBAAmB,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YAE9D,oGAAoG;YACpG,qGAAqG;YACrG,MAAM,iBAAiB,EAAE,CAAC;YAE1B,MAAM,CAAC,IAAI,CACT,0GAA0G,CAC3G,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YACjE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,KAAK,CAAC,aAAa;QAChC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { Knex } from "knex";
|
|
2
2
|
|
|
3
3
|
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
const exists = await knex.schema.hasTable("sdk_runtime_state");
|
|
5
|
+
if (exists) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
4
8
|
await knex.schema.createTable("sdk_runtime_state", (table) => {
|
|
5
9
|
table.string("key").primary();
|
|
6
10
|
table.text("value").notNullable();
|
|
@@ -23,16 +23,16 @@ export class ApplicationInitializer {
|
|
|
23
23
|
const coreConfig = CoreConfiguration.inst();
|
|
24
24
|
logger.info("Core Configuration loaded:", coreConfig.toSafeLogObject());
|
|
25
25
|
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
await SQLiteCoordinator.performStartupCheck();
|
|
29
|
-
logger.info("Database startup checks completed successfully");
|
|
30
|
-
|
|
31
|
-
// Run database migrations to ensure all tables exist
|
|
26
|
+
// Migrations first: runtime-state reads (startup lock check) use sdk_runtime_state,
|
|
27
|
+
// which must exist via migrate.latest before any lazy CREATE TABLE IF NOT EXISTS runs.
|
|
32
28
|
logger.info("Running database migrations...");
|
|
33
29
|
await ApplicationInitializer.runMigrations();
|
|
34
30
|
logger.info("Database migrations completed successfully");
|
|
35
31
|
|
|
32
|
+
logger.info("Performing database startup checks...");
|
|
33
|
+
await SQLiteCoordinator.performStartupCheck();
|
|
34
|
+
logger.info("Database startup checks completed successfully");
|
|
35
|
+
|
|
36
36
|
// Loads company info from MM into memory + SQLite runtime state (timezone, locationRef, companyId).
|
|
37
37
|
// Retries until success; failure aborts init. Confirms the MM API token works for /accounts/current.
|
|
38
38
|
await ensureCompanyInfo();
|