@camstack/core 0.1.2 → 0.1.4

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.
Files changed (41) hide show
  1. package/dist/builtins/local-backup/index.mjs +10 -3
  2. package/dist/builtins/local-backup/index.mjs.map +1 -1
  3. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +5 -3
  4. package/dist/builtins/sqlite-storage/index.js +197 -95
  5. package/dist/builtins/sqlite-storage/index.js.map +1 -1
  6. package/dist/builtins/sqlite-storage/index.mjs +26 -7
  7. package/dist/builtins/sqlite-storage/index.mjs.map +1 -1
  8. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +4 -2
  9. package/dist/builtins/winston-logging/index.mjs +10 -3
  10. package/dist/builtins/winston-logging/index.mjs.map +1 -1
  11. package/dist/{chunk-QEMJH3KY.mjs → chunk-4JEXNFZZ.mjs} +11 -2
  12. package/dist/chunk-4YD6WMO6.mjs +207 -0
  13. package/dist/{chunk-SPA4JBKN.mjs.map → chunk-4YD6WMO6.mjs.map} +1 -1
  14. package/dist/chunk-CHFIH4G6.mjs +314 -0
  15. package/dist/{chunk-YXNXYYHL.mjs.map → chunk-CHFIH4G6.mjs.map} +1 -1
  16. package/dist/chunk-EFQ25JFE.mjs +689 -0
  17. package/dist/chunk-EFQ25JFE.mjs.map +1 -0
  18. package/dist/chunk-GBWW3JU4.mjs +180 -0
  19. package/dist/{chunk-SO4LROOT.mjs.map → chunk-GBWW3JU4.mjs.map} +1 -1
  20. package/dist/chunk-XSLBW5C2.mjs +177 -0
  21. package/dist/{chunk-LQFPAEQF.mjs.map → chunk-XSLBW5C2.mjs.map} +1 -1
  22. package/dist/index.js +14872 -11586
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.mjs +16119 -5933
  25. package/dist/index.mjs.map +1 -1
  26. package/package.json +2 -1
  27. package/dist/chunk-2F3XZYRW.mjs +0 -89
  28. package/dist/chunk-2F3XZYRW.mjs.map +0 -1
  29. package/dist/chunk-LQFPAEQF.mjs +0 -147
  30. package/dist/chunk-R3DIIBBX.mjs +0 -532
  31. package/dist/chunk-R3DIIBBX.mjs.map +0 -1
  32. package/dist/chunk-SO4LROOT.mjs +0 -150
  33. package/dist/chunk-SPA4JBKN.mjs +0 -175
  34. package/dist/chunk-YXNXYYHL.mjs +0 -282
  35. package/dist/dist-N7SR63RN.mjs +0 -3515
  36. package/dist/dist-N7SR63RN.mjs.map +0 -1
  37. package/dist/storage-location-manager-UQRGHTCA.mjs +0 -8
  38. package/dist/storage-location-manager-UQRGHTCA.mjs.map +0 -1
  39. package/dist/wrapper-Y55ADNM5.mjs +0 -3652
  40. package/dist/wrapper-Y55ADNM5.mjs.map +0 -1
  41. /package/dist/{chunk-QEMJH3KY.mjs.map → chunk-4JEXNFZZ.mjs.map} +0 -0
@@ -1,8 +1,15 @@
1
1
  import {
2
2
  LocalBackupAddon,
3
- LocalBackupService
4
- } from "../../chunk-SO4LROOT.mjs";
5
- import "../../chunk-QEMJH3KY.mjs";
3
+ LocalBackupService,
4
+ init_local_backup,
5
+ init_local_backup_addon
6
+ } from "../../chunk-GBWW3JU4.mjs";
7
+ import "../../chunk-4JEXNFZZ.mjs";
8
+
9
+ // src/builtins/local-backup/index.ts
10
+ init_local_backup();
11
+ init_local_backup_addon();
12
+ init_local_backup_addon();
6
13
  export {
7
14
  LocalBackupAddon,
8
15
  LocalBackupService,
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../../../src/builtins/local-backup/index.ts"],"sourcesContent":["export { LocalBackupService } from './local-backup'\nexport type { BackupManifest, BackupConfig } from './local-backup'\nexport { LocalBackupAddon } from './local-backup.addon'\nexport { LocalBackupAddon as default } from './local-backup.addon'\n"],"mappings":";;;;;;;;;AAAA;AAEA;AACA;","names":[]}
@@ -1,8 +1,10 @@
1
1
  import {
2
2
  FilesystemStorageAddon,
3
- filesystem_storage_addon_default
4
- } from "../../chunk-SPA4JBKN.mjs";
5
- import "../../chunk-QEMJH3KY.mjs";
3
+ filesystem_storage_addon_default,
4
+ init_filesystem_storage_addon
5
+ } from "../../chunk-4YD6WMO6.mjs";
6
+ import "../../chunk-4JEXNFZZ.mjs";
7
+ init_filesystem_storage_addon();
6
8
  export {
7
9
  FilesystemStorageAddon,
8
10
  filesystem_storage_addon_default as default
@@ -5,6 +5,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __commonJS = (cb, mod) => function __require() {
9
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10
+ };
8
11
  var __export = (target, all) => {
9
12
  for (var name in all)
10
13
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -27,10 +30,110 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
30
  ));
28
31
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
32
 
33
+ // src/builtins/sqlite-storage/sql-schema.js
34
+ var require_sql_schema = __commonJS({
35
+ "src/builtins/sqlite-storage/sql-schema.js"(exports2) {
36
+ "use strict";
37
+ Object.defineProperty(exports2, "__esModule", { value: true });
38
+ exports2.CORE_TABLE_DDL = void 0;
39
+ exports2.addonTableToDdl = addonTableToDdl2;
40
+ exports2.CORE_TABLE_DDL = [
41
+ // Settings tables
42
+ `CREATE TABLE IF NOT EXISTS system_settings (
43
+ key TEXT PRIMARY KEY,
44
+ value JSON NOT NULL,
45
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch())
46
+ )`,
47
+ `CREATE TABLE IF NOT EXISTS addon_settings (
48
+ addon_id TEXT NOT NULL,
49
+ key TEXT NOT NULL,
50
+ value JSON NOT NULL,
51
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
52
+ PRIMARY KEY (addon_id, key)
53
+ )`,
54
+ `CREATE TABLE IF NOT EXISTS provider_settings (
55
+ provider_id TEXT NOT NULL,
56
+ key TEXT NOT NULL,
57
+ value JSON NOT NULL,
58
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
59
+ PRIMARY KEY (provider_id, key)
60
+ )`,
61
+ `CREATE TABLE IF NOT EXISTS device_settings (
62
+ device_id TEXT NOT NULL,
63
+ key TEXT NOT NULL,
64
+ value JSON NOT NULL,
65
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
66
+ PRIMARY KEY (device_id, key)
67
+ )`,
68
+ // Detection events
69
+ `CREATE TABLE IF NOT EXISTS detection_events (
70
+ id TEXT PRIMARY KEY,
71
+ timestamp INTEGER NOT NULL,
72
+ device_id TEXT NOT NULL,
73
+ class_name TEXT NOT NULL,
74
+ score REAL NOT NULL,
75
+ severity TEXT NOT NULL,
76
+ track_id TEXT,
77
+ zones JSON,
78
+ recognition JSON,
79
+ media_files JSON,
80
+ data JSON
81
+ )`,
82
+ `CREATE INDEX IF NOT EXISTS idx_det_device_ts ON detection_events(device_id, timestamp)`,
83
+ `CREATE INDEX IF NOT EXISTS idx_det_class_ts ON detection_events(class_name, timestamp)`,
84
+ // Audio levels
85
+ `CREATE TABLE IF NOT EXISTS audio_levels (
86
+ id TEXT PRIMARY KEY,
87
+ timestamp INTEGER NOT NULL,
88
+ device_id TEXT NOT NULL,
89
+ dbfs REAL NOT NULL,
90
+ rms REAL NOT NULL,
91
+ state TEXT NOT NULL
92
+ )`,
93
+ `CREATE INDEX IF NOT EXISTS idx_audio_device_ts ON audio_levels(device_id, timestamp)`,
94
+ // Track trails
95
+ `CREATE TABLE IF NOT EXISTS track_trails (
96
+ track_id TEXT PRIMARY KEY,
97
+ device_id TEXT NOT NULL,
98
+ class_name TEXT NOT NULL,
99
+ first_seen INTEGER NOT NULL,
100
+ last_seen INTEGER NOT NULL,
101
+ positions JSON NOT NULL,
102
+ snapshots JSON,
103
+ total_distance REAL,
104
+ zones_visited JSON
105
+ )`,
106
+ `CREATE INDEX IF NOT EXISTS idx_trails_device_ts ON track_trails(device_id, first_seen)`
107
+ ];
108
+ function addonTableToDdl2(schema) {
109
+ const pks = schema.columns.filter((c) => c.primaryKey).map((c) => c.name);
110
+ const colDefs = schema.columns.map((c) => {
111
+ const parts = [c.name, c.type];
112
+ if (c.notNull)
113
+ parts.push("NOT NULL");
114
+ return parts.join(" ");
115
+ });
116
+ let ddl = `CREATE TABLE IF NOT EXISTS ${schema.name} (
117
+ ${colDefs.join(",\n ")}`;
118
+ if (pks.length > 0) {
119
+ ddl += `,
120
+ PRIMARY KEY (${pks.join(", ")})`;
121
+ }
122
+ ddl += "\n)";
123
+ const stmts = [ddl];
124
+ for (const idx of schema.indexes ?? []) {
125
+ const unique = idx.unique ? "UNIQUE " : "";
126
+ stmts.push(`CREATE ${unique}INDEX IF NOT EXISTS ${idx.name} ON ${schema.name}(${idx.columns.join(", ")})`);
127
+ }
128
+ return stmts;
129
+ }
130
+ }
131
+ });
132
+
30
133
  // src/builtins/sqlite-storage/index.ts
31
134
  var sqlite_storage_exports = {};
32
135
  __export(sqlite_storage_exports, {
33
- CORE_TABLE_DDL: () => CORE_TABLE_DDL,
136
+ CORE_TABLE_DDL: () => CORE_TABLE_DDL2,
34
137
  FileSystemStorage: () => FileSystemStorage,
35
138
  FilesystemStorageAddon: () => FilesystemStorageAddon,
36
139
  FilesystemStorageProvider: () => FilesystemStorageProvider,
@@ -776,99 +879,7 @@ var SqliteStorageAddon = class {
776
879
 
777
880
  // src/builtins/sqlite-storage/settings-store.ts
778
881
  var import_better_sqlite33 = __toESM(require("better-sqlite3"));
779
-
780
- // src/builtins/sqlite-storage/sql-schema.ts
781
- var CORE_TABLE_DDL = [
782
- // Settings tables
783
- `CREATE TABLE IF NOT EXISTS system_settings (
784
- key TEXT PRIMARY KEY,
785
- value JSON NOT NULL,
786
- updated_at INTEGER NOT NULL DEFAULT (unixepoch())
787
- )`,
788
- `CREATE TABLE IF NOT EXISTS addon_settings (
789
- addon_id TEXT NOT NULL,
790
- key TEXT NOT NULL,
791
- value JSON NOT NULL,
792
- updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
793
- PRIMARY KEY (addon_id, key)
794
- )`,
795
- `CREATE TABLE IF NOT EXISTS provider_settings (
796
- provider_id TEXT NOT NULL,
797
- key TEXT NOT NULL,
798
- value JSON NOT NULL,
799
- updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
800
- PRIMARY KEY (provider_id, key)
801
- )`,
802
- `CREATE TABLE IF NOT EXISTS device_settings (
803
- device_id TEXT NOT NULL,
804
- key TEXT NOT NULL,
805
- value JSON NOT NULL,
806
- updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
807
- PRIMARY KEY (device_id, key)
808
- )`,
809
- // Detection events
810
- `CREATE TABLE IF NOT EXISTS detection_events (
811
- id TEXT PRIMARY KEY,
812
- timestamp INTEGER NOT NULL,
813
- device_id TEXT NOT NULL,
814
- class_name TEXT NOT NULL,
815
- score REAL NOT NULL,
816
- severity TEXT NOT NULL,
817
- track_id TEXT,
818
- zones JSON,
819
- recognition JSON,
820
- media_files JSON,
821
- data JSON
822
- )`,
823
- `CREATE INDEX IF NOT EXISTS idx_det_device_ts ON detection_events(device_id, timestamp)`,
824
- `CREATE INDEX IF NOT EXISTS idx_det_class_ts ON detection_events(class_name, timestamp)`,
825
- // Audio levels
826
- `CREATE TABLE IF NOT EXISTS audio_levels (
827
- id TEXT PRIMARY KEY,
828
- timestamp INTEGER NOT NULL,
829
- device_id TEXT NOT NULL,
830
- dbfs REAL NOT NULL,
831
- rms REAL NOT NULL,
832
- state TEXT NOT NULL
833
- )`,
834
- `CREATE INDEX IF NOT EXISTS idx_audio_device_ts ON audio_levels(device_id, timestamp)`,
835
- // Track trails
836
- `CREATE TABLE IF NOT EXISTS track_trails (
837
- track_id TEXT PRIMARY KEY,
838
- device_id TEXT NOT NULL,
839
- class_name TEXT NOT NULL,
840
- first_seen INTEGER NOT NULL,
841
- last_seen INTEGER NOT NULL,
842
- positions JSON NOT NULL,
843
- snapshots JSON,
844
- total_distance REAL,
845
- zones_visited JSON
846
- )`,
847
- `CREATE INDEX IF NOT EXISTS idx_trails_device_ts ON track_trails(device_id, first_seen)`
848
- ];
849
- function addonTableToDdl(schema) {
850
- const pks = schema.columns.filter((c) => c.primaryKey).map((c) => c.name);
851
- const colDefs = schema.columns.map((c) => {
852
- const parts = [c.name, c.type];
853
- if (c.notNull) parts.push("NOT NULL");
854
- return parts.join(" ");
855
- });
856
- let ddl = `CREATE TABLE IF NOT EXISTS ${schema.name} (
857
- ${colDefs.join(",\n ")}`;
858
- if (pks.length > 0) {
859
- ddl += `,
860
- PRIMARY KEY (${pks.join(", ")})`;
861
- }
862
- ddl += "\n)";
863
- const stmts = [ddl];
864
- for (const idx of schema.indexes ?? []) {
865
- const unique = idx.unique ? "UNIQUE " : "";
866
- stmts.push(`CREATE ${unique}INDEX IF NOT EXISTS ${idx.name} ON ${schema.name}(${idx.columns.join(", ")})`);
867
- }
868
- return stmts;
869
- }
870
-
871
- // src/builtins/sqlite-storage/settings-store.ts
882
+ var import_sql_schema = __toESM(require_sql_schema());
872
883
  var import_kernel = require("@camstack/kernel");
873
884
  var SettingsStore = class {
874
885
  db;
@@ -1003,12 +1014,103 @@ var SettingsStore = class {
1003
1014
  // ---------------------------------------------------------------------------
1004
1015
  initTables() {
1005
1016
  this.db.transaction(() => {
1006
- for (const stmt of CORE_TABLE_DDL) {
1017
+ for (const stmt of import_sql_schema.CORE_TABLE_DDL) {
1007
1018
  this.db.prepare(stmt).run();
1008
1019
  }
1009
1020
  })();
1010
1021
  }
1011
1022
  };
1023
+
1024
+ // src/builtins/sqlite-storage/sql-schema.ts
1025
+ var CORE_TABLE_DDL2 = [
1026
+ // Settings tables
1027
+ `CREATE TABLE IF NOT EXISTS system_settings (
1028
+ key TEXT PRIMARY KEY,
1029
+ value JSON NOT NULL,
1030
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch())
1031
+ )`,
1032
+ `CREATE TABLE IF NOT EXISTS addon_settings (
1033
+ addon_id TEXT NOT NULL,
1034
+ key TEXT NOT NULL,
1035
+ value JSON NOT NULL,
1036
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
1037
+ PRIMARY KEY (addon_id, key)
1038
+ )`,
1039
+ `CREATE TABLE IF NOT EXISTS provider_settings (
1040
+ provider_id TEXT NOT NULL,
1041
+ key TEXT NOT NULL,
1042
+ value JSON NOT NULL,
1043
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
1044
+ PRIMARY KEY (provider_id, key)
1045
+ )`,
1046
+ `CREATE TABLE IF NOT EXISTS device_settings (
1047
+ device_id TEXT NOT NULL,
1048
+ key TEXT NOT NULL,
1049
+ value JSON NOT NULL,
1050
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
1051
+ PRIMARY KEY (device_id, key)
1052
+ )`,
1053
+ // Detection events
1054
+ `CREATE TABLE IF NOT EXISTS detection_events (
1055
+ id TEXT PRIMARY KEY,
1056
+ timestamp INTEGER NOT NULL,
1057
+ device_id TEXT NOT NULL,
1058
+ class_name TEXT NOT NULL,
1059
+ score REAL NOT NULL,
1060
+ severity TEXT NOT NULL,
1061
+ track_id TEXT,
1062
+ zones JSON,
1063
+ recognition JSON,
1064
+ media_files JSON,
1065
+ data JSON
1066
+ )`,
1067
+ `CREATE INDEX IF NOT EXISTS idx_det_device_ts ON detection_events(device_id, timestamp)`,
1068
+ `CREATE INDEX IF NOT EXISTS idx_det_class_ts ON detection_events(class_name, timestamp)`,
1069
+ // Audio levels
1070
+ `CREATE TABLE IF NOT EXISTS audio_levels (
1071
+ id TEXT PRIMARY KEY,
1072
+ timestamp INTEGER NOT NULL,
1073
+ device_id TEXT NOT NULL,
1074
+ dbfs REAL NOT NULL,
1075
+ rms REAL NOT NULL,
1076
+ state TEXT NOT NULL
1077
+ )`,
1078
+ `CREATE INDEX IF NOT EXISTS idx_audio_device_ts ON audio_levels(device_id, timestamp)`,
1079
+ // Track trails
1080
+ `CREATE TABLE IF NOT EXISTS track_trails (
1081
+ track_id TEXT PRIMARY KEY,
1082
+ device_id TEXT NOT NULL,
1083
+ class_name TEXT NOT NULL,
1084
+ first_seen INTEGER NOT NULL,
1085
+ last_seen INTEGER NOT NULL,
1086
+ positions JSON NOT NULL,
1087
+ snapshots JSON,
1088
+ total_distance REAL,
1089
+ zones_visited JSON
1090
+ )`,
1091
+ `CREATE INDEX IF NOT EXISTS idx_trails_device_ts ON track_trails(device_id, first_seen)`
1092
+ ];
1093
+ function addonTableToDdl(schema) {
1094
+ const pks = schema.columns.filter((c) => c.primaryKey).map((c) => c.name);
1095
+ const colDefs = schema.columns.map((c) => {
1096
+ const parts = [c.name, c.type];
1097
+ if (c.notNull) parts.push("NOT NULL");
1098
+ return parts.join(" ");
1099
+ });
1100
+ let ddl = `CREATE TABLE IF NOT EXISTS ${schema.name} (
1101
+ ${colDefs.join(",\n ")}`;
1102
+ if (pks.length > 0) {
1103
+ ddl += `,
1104
+ PRIMARY KEY (${pks.join(", ")})`;
1105
+ }
1106
+ ddl += "\n)";
1107
+ const stmts = [ddl];
1108
+ for (const idx of schema.indexes ?? []) {
1109
+ const unique = idx.unique ? "UNIQUE " : "";
1110
+ stmts.push(`CREATE ${unique}INDEX IF NOT EXISTS ${idx.name} ON ${schema.name}(${idx.columns.join(", ")})`);
1111
+ }
1112
+ return stmts;
1113
+ }
1012
1114
  // Annotate the CommonJS export names for ESM import in node:
1013
1115
  0 && (module.exports = {
1014
1116
  CORE_TABLE_DDL,