@sonicjs-cms/core 2.16.0 → 2.17.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.
Files changed (64) hide show
  1. package/dist/{app-COElO4Rm.d.cts → app-C9esKLmh.d.cts} +3 -0
  2. package/dist/{app-COElO4Rm.d.ts → app-C9esKLmh.d.ts} +3 -0
  3. package/dist/{chunk-Q5VFZUXV.cjs → chunk-4HCUJ3MG.cjs} +34 -6
  4. package/dist/chunk-4HCUJ3MG.cjs.map +1 -0
  5. package/dist/{chunk-MVSCB4E3.js → chunk-6F57Z6SD.js} +3 -3
  6. package/dist/{chunk-MVSCB4E3.js.map → chunk-6F57Z6SD.js.map} +1 -1
  7. package/dist/{chunk-INSDRCG3.js → chunk-FDXNIZ6N.js} +34 -6
  8. package/dist/chunk-FDXNIZ6N.js.map +1 -0
  9. package/dist/{chunk-OCLUXJ7E.cjs → chunk-FSWP4FBW.cjs} +48 -5
  10. package/dist/chunk-FSWP4FBW.cjs.map +1 -0
  11. package/dist/{chunk-6ENX7QSA.cjs → chunk-J5MYHM6Z.cjs} +352 -176
  12. package/dist/chunk-J5MYHM6Z.cjs.map +1 -0
  13. package/dist/{chunk-WLSIUKNM.js → chunk-LZJLWW7E.js} +227 -51
  14. package/dist/chunk-LZJLWW7E.js.map +1 -0
  15. package/dist/{chunk-VFQUULAV.js → chunk-NMJT6BJR.js} +48 -5
  16. package/dist/chunk-NMJT6BJR.js.map +1 -0
  17. package/dist/{chunk-YQW2GCJ3.cjs → chunk-QBLBIAVZ.cjs} +3 -3
  18. package/dist/{chunk-YQW2GCJ3.cjs.map → chunk-QBLBIAVZ.cjs.map} +1 -1
  19. package/dist/{chunk-TBJY2FF7.js → chunk-QFWHAFEO.js} +22 -2
  20. package/dist/chunk-QFWHAFEO.js.map +1 -0
  21. package/dist/{chunk-CZ6BVQZX.cjs → chunk-RE3NVA23.cjs} +155 -17
  22. package/dist/chunk-RE3NVA23.cjs.map +1 -0
  23. package/dist/{chunk-Y5EH32F5.js → chunk-S7K4FRJ2.js} +149 -14
  24. package/dist/chunk-S7K4FRJ2.js.map +1 -0
  25. package/dist/{chunk-NZWFCUDA.cjs → chunk-WAEQXGCX.cjs} +22 -2
  26. package/dist/chunk-WAEQXGCX.cjs.map +1 -0
  27. package/dist/index.cjs +209 -185
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.cts +1 -1
  30. package/dist/index.d.ts +1 -1
  31. package/dist/index.js +47 -23
  32. package/dist/index.js.map +1 -1
  33. package/dist/middleware.cjs +41 -29
  34. package/dist/middleware.d.cts +38 -4
  35. package/dist/middleware.d.ts +38 -4
  36. package/dist/middleware.js +3 -3
  37. package/dist/migrations-HQI62CAO.js +4 -0
  38. package/dist/{migrations-7HQ7LYAL.js.map → migrations-HQI62CAO.js.map} +1 -1
  39. package/dist/migrations-ZYPYVSXI.cjs +13 -0
  40. package/dist/{migrations-SVQTT7NV.cjs.map → migrations-ZYPYVSXI.cjs.map} +1 -1
  41. package/dist/routes.cjs +29 -29
  42. package/dist/routes.d.cts +1 -1
  43. package/dist/routes.d.ts +1 -1
  44. package/dist/routes.js +6 -6
  45. package/dist/services.cjs +39 -39
  46. package/dist/services.d.cts +12 -0
  47. package/dist/services.d.ts +12 -0
  48. package/dist/services.js +3 -3
  49. package/dist/utils.cjs +11 -11
  50. package/dist/utils.js +1 -1
  51. package/migrations/035_user_profiles_data_column.sql +14 -15
  52. package/package.json +1 -1
  53. package/dist/chunk-6ENX7QSA.cjs.map +0 -1
  54. package/dist/chunk-CZ6BVQZX.cjs.map +0 -1
  55. package/dist/chunk-INSDRCG3.js.map +0 -1
  56. package/dist/chunk-NZWFCUDA.cjs.map +0 -1
  57. package/dist/chunk-OCLUXJ7E.cjs.map +0 -1
  58. package/dist/chunk-Q5VFZUXV.cjs.map +0 -1
  59. package/dist/chunk-TBJY2FF7.js.map +0 -1
  60. package/dist/chunk-VFQUULAV.js.map +0 -1
  61. package/dist/chunk-WLSIUKNM.js.map +0 -1
  62. package/dist/chunk-Y5EH32F5.js.map +0 -1
  63. package/dist/migrations-7HQ7LYAL.js +0 -4
  64. package/dist/migrations-SVQTT7NV.cjs +0 -13
package/dist/services.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkNZWFCUDA_cjs = require('./chunk-NZWFCUDA.cjs');
4
- var chunkQ5VFZUXV_cjs = require('./chunk-Q5VFZUXV.cjs');
5
- var chunkOCLUXJ7E_cjs = require('./chunk-OCLUXJ7E.cjs');
3
+ var chunkWAEQXGCX_cjs = require('./chunk-WAEQXGCX.cjs');
4
+ var chunk4HCUJ3MG_cjs = require('./chunk-4HCUJ3MG.cjs');
5
+ var chunkFSWP4FBW_cjs = require('./chunk-FSWP4FBW.cjs');
6
6
  require('./chunk-P3XDZL6Q.cjs');
7
7
  require('./chunk-IGJUBJBW.cjs');
8
8
 
@@ -10,147 +10,147 @@ require('./chunk-IGJUBJBW.cjs');
10
10
 
11
11
  Object.defineProperty(exports, "CACHE_CONFIGS", {
12
12
  enumerable: true,
13
- get: function () { return chunkNZWFCUDA_cjs.CACHE_CONFIGS; }
13
+ get: function () { return chunkWAEQXGCX_cjs.CACHE_CONFIGS; }
14
14
  });
15
15
  Object.defineProperty(exports, "CATEGORY_INFO", {
16
16
  enumerable: true,
17
- get: function () { return chunkNZWFCUDA_cjs.CATEGORY_INFO; }
17
+ get: function () { return chunkWAEQXGCX_cjs.CATEGORY_INFO; }
18
18
  });
19
19
  Object.defineProperty(exports, "CacheService", {
20
20
  enumerable: true,
21
- get: function () { return chunkNZWFCUDA_cjs.CacheService; }
21
+ get: function () { return chunkWAEQXGCX_cjs.CacheService; }
22
22
  });
23
23
  Object.defineProperty(exports, "Logger", {
24
24
  enumerable: true,
25
- get: function () { return chunkNZWFCUDA_cjs.Logger; }
25
+ get: function () { return chunkWAEQXGCX_cjs.Logger; }
26
26
  });
27
27
  Object.defineProperty(exports, "SettingsService", {
28
28
  enumerable: true,
29
- get: function () { return chunkNZWFCUDA_cjs.SettingsService; }
29
+ get: function () { return chunkWAEQXGCX_cjs.SettingsService; }
30
30
  });
31
31
  Object.defineProperty(exports, "TelemetryService", {
32
32
  enumerable: true,
33
- get: function () { return chunkNZWFCUDA_cjs.TelemetryService; }
33
+ get: function () { return chunkWAEQXGCX_cjs.TelemetryService; }
34
34
  });
35
35
  Object.defineProperty(exports, "buildRouteList", {
36
36
  enumerable: true,
37
- get: function () { return chunkNZWFCUDA_cjs.buildRouteList; }
37
+ get: function () { return chunkWAEQXGCX_cjs.buildRouteList; }
38
38
  });
39
39
  Object.defineProperty(exports, "createInstallationIdentity", {
40
40
  enumerable: true,
41
- get: function () { return chunkNZWFCUDA_cjs.createInstallationIdentity; }
41
+ get: function () { return chunkWAEQXGCX_cjs.createInstallationIdentity; }
42
42
  });
43
43
  Object.defineProperty(exports, "getAppInstance", {
44
44
  enumerable: true,
45
- get: function () { return chunkNZWFCUDA_cjs.getAppInstance; }
45
+ get: function () { return chunkWAEQXGCX_cjs.getAppInstance; }
46
46
  });
47
47
  Object.defineProperty(exports, "getCacheService", {
48
48
  enumerable: true,
49
- get: function () { return chunkNZWFCUDA_cjs.getCacheService; }
49
+ get: function () { return chunkWAEQXGCX_cjs.getCacheService; }
50
50
  });
51
51
  Object.defineProperty(exports, "getLogger", {
52
52
  enumerable: true,
53
- get: function () { return chunkNZWFCUDA_cjs.getLogger; }
53
+ get: function () { return chunkWAEQXGCX_cjs.getLogger; }
54
54
  });
55
55
  Object.defineProperty(exports, "getTelemetryService", {
56
56
  enumerable: true,
57
- get: function () { return chunkNZWFCUDA_cjs.getTelemetryService; }
57
+ get: function () { return chunkWAEQXGCX_cjs.getTelemetryService; }
58
58
  });
59
59
  Object.defineProperty(exports, "initLogger", {
60
60
  enumerable: true,
61
- get: function () { return chunkNZWFCUDA_cjs.initLogger; }
61
+ get: function () { return chunkWAEQXGCX_cjs.initLogger; }
62
62
  });
63
63
  Object.defineProperty(exports, "initTelemetry", {
64
64
  enumerable: true,
65
- get: function () { return chunkNZWFCUDA_cjs.initTelemetry; }
65
+ get: function () { return chunkWAEQXGCX_cjs.initTelemetry; }
66
66
  });
67
67
  Object.defineProperty(exports, "setAppInstance", {
68
68
  enumerable: true,
69
- get: function () { return chunkNZWFCUDA_cjs.setAppInstance; }
69
+ get: function () { return chunkWAEQXGCX_cjs.setAppInstance; }
70
70
  });
71
71
  Object.defineProperty(exports, "PluginBootstrapService", {
72
72
  enumerable: true,
73
- get: function () { return chunkQ5VFZUXV_cjs.PluginBootstrapService; }
73
+ get: function () { return chunk4HCUJ3MG_cjs.PluginBootstrapService; }
74
74
  });
75
75
  Object.defineProperty(exports, "PluginService", {
76
76
  enumerable: true,
77
- get: function () { return chunkQ5VFZUXV_cjs.PluginService; }
77
+ get: function () { return chunk4HCUJ3MG_cjs.PluginService; }
78
78
  });
79
79
  Object.defineProperty(exports, "backfillFormSubmissions", {
80
80
  enumerable: true,
81
- get: function () { return chunkQ5VFZUXV_cjs.backfillFormSubmissions; }
81
+ get: function () { return chunk4HCUJ3MG_cjs.backfillFormSubmissions; }
82
82
  });
83
83
  Object.defineProperty(exports, "cleanupRemovedCollections", {
84
84
  enumerable: true,
85
- get: function () { return chunkQ5VFZUXV_cjs.cleanupRemovedCollections; }
85
+ get: function () { return chunk4HCUJ3MG_cjs.cleanupRemovedCollections; }
86
86
  });
87
87
  Object.defineProperty(exports, "createContentFromSubmission", {
88
88
  enumerable: true,
89
- get: function () { return chunkQ5VFZUXV_cjs.createContentFromSubmission; }
89
+ get: function () { return chunk4HCUJ3MG_cjs.createContentFromSubmission; }
90
90
  });
91
91
  Object.defineProperty(exports, "deriveCollectionSchemaFromFormio", {
92
92
  enumerable: true,
93
- get: function () { return chunkQ5VFZUXV_cjs.deriveCollectionSchemaFromFormio; }
93
+ get: function () { return chunk4HCUJ3MG_cjs.deriveCollectionSchemaFromFormio; }
94
94
  });
95
95
  Object.defineProperty(exports, "deriveSubmissionTitle", {
96
96
  enumerable: true,
97
- get: function () { return chunkQ5VFZUXV_cjs.deriveSubmissionTitle; }
97
+ get: function () { return chunk4HCUJ3MG_cjs.deriveSubmissionTitle; }
98
98
  });
99
99
  Object.defineProperty(exports, "fullCollectionSync", {
100
100
  enumerable: true,
101
- get: function () { return chunkQ5VFZUXV_cjs.fullCollectionSync; }
101
+ get: function () { return chunk4HCUJ3MG_cjs.fullCollectionSync; }
102
102
  });
103
103
  Object.defineProperty(exports, "getAvailableCollectionNames", {
104
104
  enumerable: true,
105
- get: function () { return chunkQ5VFZUXV_cjs.getAvailableCollectionNames; }
105
+ get: function () { return chunk4HCUJ3MG_cjs.getAvailableCollectionNames; }
106
106
  });
107
107
  Object.defineProperty(exports, "getManagedCollections", {
108
108
  enumerable: true,
109
- get: function () { return chunkQ5VFZUXV_cjs.getManagedCollections; }
109
+ get: function () { return chunk4HCUJ3MG_cjs.getManagedCollections; }
110
110
  });
111
111
  Object.defineProperty(exports, "isCollectionManaged", {
112
112
  enumerable: true,
113
- get: function () { return chunkQ5VFZUXV_cjs.isCollectionManaged; }
113
+ get: function () { return chunk4HCUJ3MG_cjs.isCollectionManaged; }
114
114
  });
115
115
  Object.defineProperty(exports, "loadCollectionConfig", {
116
116
  enumerable: true,
117
- get: function () { return chunkQ5VFZUXV_cjs.loadCollectionConfig; }
117
+ get: function () { return chunk4HCUJ3MG_cjs.loadCollectionConfig; }
118
118
  });
119
119
  Object.defineProperty(exports, "loadCollectionConfigs", {
120
120
  enumerable: true,
121
- get: function () { return chunkQ5VFZUXV_cjs.loadCollectionConfigs; }
121
+ get: function () { return chunk4HCUJ3MG_cjs.loadCollectionConfigs; }
122
122
  });
123
123
  Object.defineProperty(exports, "mapFormStatusToContentStatus", {
124
124
  enumerable: true,
125
- get: function () { return chunkQ5VFZUXV_cjs.mapFormStatusToContentStatus; }
125
+ get: function () { return chunk4HCUJ3MG_cjs.mapFormStatusToContentStatus; }
126
126
  });
127
127
  Object.defineProperty(exports, "registerCollections", {
128
128
  enumerable: true,
129
- get: function () { return chunkQ5VFZUXV_cjs.registerCollections; }
129
+ get: function () { return chunk4HCUJ3MG_cjs.registerCollections; }
130
130
  });
131
131
  Object.defineProperty(exports, "syncAllFormCollections", {
132
132
  enumerable: true,
133
- get: function () { return chunkQ5VFZUXV_cjs.syncAllFormCollections; }
133
+ get: function () { return chunk4HCUJ3MG_cjs.syncAllFormCollections; }
134
134
  });
135
135
  Object.defineProperty(exports, "syncCollection", {
136
136
  enumerable: true,
137
- get: function () { return chunkQ5VFZUXV_cjs.syncCollection; }
137
+ get: function () { return chunk4HCUJ3MG_cjs.syncCollection; }
138
138
  });
139
139
  Object.defineProperty(exports, "syncCollections", {
140
140
  enumerable: true,
141
- get: function () { return chunkQ5VFZUXV_cjs.syncCollections; }
141
+ get: function () { return chunk4HCUJ3MG_cjs.syncCollections; }
142
142
  });
143
143
  Object.defineProperty(exports, "syncFormCollection", {
144
144
  enumerable: true,
145
- get: function () { return chunkQ5VFZUXV_cjs.syncFormCollection; }
145
+ get: function () { return chunk4HCUJ3MG_cjs.syncFormCollection; }
146
146
  });
147
147
  Object.defineProperty(exports, "validateCollectionConfig", {
148
148
  enumerable: true,
149
- get: function () { return chunkQ5VFZUXV_cjs.validateCollectionConfig; }
149
+ get: function () { return chunk4HCUJ3MG_cjs.validateCollectionConfig; }
150
150
  });
151
151
  Object.defineProperty(exports, "MigrationService", {
152
152
  enumerable: true,
153
- get: function () { return chunkOCLUXJ7E_cjs.MigrationService; }
153
+ get: function () { return chunkFSWP4FBW_cjs.MigrationService; }
154
154
  });
155
155
  //# sourceMappingURL=services.cjs.map
156
156
  //# sourceMappingURL=services.cjs.map
@@ -100,6 +100,10 @@ interface GeneralSettings {
100
100
  language: string;
101
101
  maintenanceMode: boolean;
102
102
  }
103
+ interface SecuritySettings {
104
+ jwtExpiresIn: string;
105
+ jwtRefreshGraceSeconds: number;
106
+ }
103
107
  declare class SettingsService {
104
108
  private db;
105
109
  constructor(db: D1Database);
@@ -127,6 +131,14 @@ declare class SettingsService {
127
131
  * Save general settings
128
132
  */
129
133
  saveGeneralSettings(settings: Partial<GeneralSettings>): Promise<boolean>;
134
+ /**
135
+ * Get security settings with defaults
136
+ */
137
+ getSecuritySettings(): Promise<SecuritySettings>;
138
+ /**
139
+ * Save security settings
140
+ */
141
+ saveSecuritySettings(settings: Partial<SecuritySettings>): Promise<boolean>;
130
142
  }
131
143
 
132
144
  /**
@@ -100,6 +100,10 @@ interface GeneralSettings {
100
100
  language: string;
101
101
  maintenanceMode: boolean;
102
102
  }
103
+ interface SecuritySettings {
104
+ jwtExpiresIn: string;
105
+ jwtRefreshGraceSeconds: number;
106
+ }
103
107
  declare class SettingsService {
104
108
  private db;
105
109
  constructor(db: D1Database);
@@ -127,6 +131,14 @@ declare class SettingsService {
127
131
  * Save general settings
128
132
  */
129
133
  saveGeneralSettings(settings: Partial<GeneralSettings>): Promise<boolean>;
134
+ /**
135
+ * Get security settings with defaults
136
+ */
137
+ getSecuritySettings(): Promise<SecuritySettings>;
138
+ /**
139
+ * Save security settings
140
+ */
141
+ saveSecuritySettings(settings: Partial<SecuritySettings>): Promise<boolean>;
130
142
  }
131
143
 
132
144
  /**
package/dist/services.js CHANGED
@@ -1,6 +1,6 @@
1
- export { CACHE_CONFIGS, CATEGORY_INFO, CacheService, Logger, SettingsService, TelemetryService, buildRouteList, createInstallationIdentity, getAppInstance, getCacheService, getLogger, getTelemetryService, initLogger, initTelemetry, setAppInstance } from './chunk-TBJY2FF7.js';
2
- export { PluginBootstrapService, PluginService, backfillFormSubmissions, cleanupRemovedCollections, createContentFromSubmission, deriveCollectionSchemaFromFormio, deriveSubmissionTitle, fullCollectionSync, getAvailableCollectionNames, getManagedCollections, isCollectionManaged, loadCollectionConfig, loadCollectionConfigs, mapFormStatusToContentStatus, registerCollections, syncAllFormCollections, syncCollection, syncCollections, syncFormCollection, validateCollectionConfig } from './chunk-INSDRCG3.js';
3
- export { MigrationService } from './chunk-VFQUULAV.js';
1
+ export { CACHE_CONFIGS, CATEGORY_INFO, CacheService, Logger, SettingsService, TelemetryService, buildRouteList, createInstallationIdentity, getAppInstance, getCacheService, getLogger, getTelemetryService, initLogger, initTelemetry, setAppInstance } from './chunk-QFWHAFEO.js';
2
+ export { PluginBootstrapService, PluginService, backfillFormSubmissions, cleanupRemovedCollections, createContentFromSubmission, deriveCollectionSchemaFromFormio, deriveSubmissionTitle, fullCollectionSync, getAvailableCollectionNames, getManagedCollections, isCollectionManaged, loadCollectionConfig, loadCollectionConfigs, mapFormStatusToContentStatus, registerCollections, syncAllFormCollections, syncCollection, syncCollections, syncFormCollection, validateCollectionConfig } from './chunk-FDXNIZ6N.js';
3
+ export { MigrationService } from './chunk-NMJT6BJR.js';
4
4
  import './chunk-X7ZAEI5S.js';
5
5
  import './chunk-V4OQ3NZ2.js';
6
6
  //# sourceMappingURL=services.js.map
package/dist/utils.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkYQW2GCJ3_cjs = require('./chunk-YQW2GCJ3.cjs');
3
+ var chunkQBLBIAVZ_cjs = require('./chunk-QBLBIAVZ.cjs');
4
4
  var chunkP3XDZL6Q_cjs = require('./chunk-P3XDZL6Q.cjs');
5
5
  var chunkRCQ2HIQD_cjs = require('./chunk-RCQ2HIQD.cjs');
6
6
  var chunkMNWKYY5E_cjs = require('./chunk-MNWKYY5E.cjs');
@@ -10,43 +10,43 @@ require('./chunk-IGJUBJBW.cjs');
10
10
 
11
11
  Object.defineProperty(exports, "QueryFilterBuilder", {
12
12
  enumerable: true,
13
- get: function () { return chunkYQW2GCJ3_cjs.QueryFilterBuilder; }
13
+ get: function () { return chunkQBLBIAVZ_cjs.QueryFilterBuilder; }
14
14
  });
15
15
  Object.defineProperty(exports, "SONICJS_VERSION", {
16
16
  enumerable: true,
17
- get: function () { return chunkYQW2GCJ3_cjs.SONICJS_VERSION; }
17
+ get: function () { return chunkQBLBIAVZ_cjs.SONICJS_VERSION; }
18
18
  });
19
19
  Object.defineProperty(exports, "TemplateRenderer", {
20
20
  enumerable: true,
21
- get: function () { return chunkYQW2GCJ3_cjs.TemplateRenderer; }
21
+ get: function () { return chunkQBLBIAVZ_cjs.TemplateRenderer; }
22
22
  });
23
23
  Object.defineProperty(exports, "buildQuery", {
24
24
  enumerable: true,
25
- get: function () { return chunkYQW2GCJ3_cjs.buildQuery; }
25
+ get: function () { return chunkQBLBIAVZ_cjs.buildQuery; }
26
26
  });
27
27
  Object.defineProperty(exports, "generateSlug", {
28
28
  enumerable: true,
29
- get: function () { return chunkYQW2GCJ3_cjs.generateSlug; }
29
+ get: function () { return chunkQBLBIAVZ_cjs.generateSlug; }
30
30
  });
31
31
  Object.defineProperty(exports, "getBlocksFieldConfig", {
32
32
  enumerable: true,
33
- get: function () { return chunkYQW2GCJ3_cjs.getBlocksFieldConfig; }
33
+ get: function () { return chunkQBLBIAVZ_cjs.getBlocksFieldConfig; }
34
34
  });
35
35
  Object.defineProperty(exports, "getCoreVersion", {
36
36
  enumerable: true,
37
- get: function () { return chunkYQW2GCJ3_cjs.getCoreVersion; }
37
+ get: function () { return chunkQBLBIAVZ_cjs.getCoreVersion; }
38
38
  });
39
39
  Object.defineProperty(exports, "parseBlocksValue", {
40
40
  enumerable: true,
41
- get: function () { return chunkYQW2GCJ3_cjs.parseBlocksValue; }
41
+ get: function () { return chunkQBLBIAVZ_cjs.parseBlocksValue; }
42
42
  });
43
43
  Object.defineProperty(exports, "renderTemplate", {
44
44
  enumerable: true,
45
- get: function () { return chunkYQW2GCJ3_cjs.renderTemplate; }
45
+ get: function () { return chunkQBLBIAVZ_cjs.renderTemplate; }
46
46
  });
47
47
  Object.defineProperty(exports, "templateRenderer", {
48
48
  enumerable: true,
49
- get: function () { return chunkYQW2GCJ3_cjs.templateRenderer; }
49
+ get: function () { return chunkQBLBIAVZ_cjs.templateRenderer; }
50
50
  });
51
51
  Object.defineProperty(exports, "generateInstallationId", {
52
52
  enumerable: true,
package/dist/utils.js CHANGED
@@ -1,4 +1,4 @@
1
- export { QueryFilterBuilder, SONICJS_VERSION, TemplateRenderer, buildQuery, generateSlug, getBlocksFieldConfig, getCoreVersion, parseBlocksValue, renderTemplate, templateRenderer } from './chunk-MVSCB4E3.js';
1
+ export { QueryFilterBuilder, SONICJS_VERSION, TemplateRenderer, buildQuery, generateSlug, getBlocksFieldConfig, getCoreVersion, parseBlocksValue, renderTemplate, templateRenderer } from './chunk-6F57Z6SD.js';
2
2
  export { generateInstallationId, generateProjectId, getDefaultTelemetryConfig, getTelemetryConfig, isTelemetryEnabled, sanitizeErrorMessage, sanitizeRoute, shouldSkipEvent } from './chunk-X7ZAEI5S.js';
3
3
  export { metricsTracker } from './chunk-FICTAGD4.js';
4
4
  export { escapeHtml, sanitizeInput, sanitizeObject } from './chunk-TQABQWOP.js';
@@ -1,17 +1,16 @@
1
- -- Migration 035: Add data column to user_profiles
2
- -- Stores custom profile fields as JSON (used by user-profiles plugin)
1
+ -- Migration 035: Add data column to user_profiles (no-op)
3
2
  --
4
- -- The data column was missing from migration 032 when the user-profiles plugin
5
- -- was added in PR #747. The ALTER TABLE migration was placed in the wrong
6
- -- directory (src/db/migrations/) so it was never bundled or executed.
7
- -- This caused the user edit page to crash with a 500 error because the route
8
- -- queries SELECT ... data FROM user_profiles.
3
+ -- This migration originally added a missing 'data' column to user_profiles.
4
+ -- Migration 032 has since been updated to include the column in the CREATE TABLE,
5
+ -- so on fresh installs the column already exists by the time this runs.
9
6
  --
10
- -- Migration 032 has been updated to include the column for fresh installs.
11
- -- This migration handles existing databases that already ran 032 without it.
12
-
13
- -- SQLite does not support IF NOT EXISTS for ALTER TABLE ADD COLUMN,
14
- -- but re-adding an existing column is a no-op error that we catch at the
15
- -- application level. The migration runner skips already-applied migrations
16
- -- by ID, so this only runs on databases missing the column.
17
- ALTER TABLE user_profiles ADD COLUMN data TEXT DEFAULT '{}';
7
+ -- The ALTER TABLE has been removed to prevent "duplicate column name: data" errors
8
+ -- during fresh installs (GitHub issue #771). Wrangler's migration runner does not
9
+ -- gracefully handle duplicate column errors like the runtime MigrationService does.
10
+ --
11
+ -- Existing databases that ran the old 032 (without the data column) get the column
12
+ -- added at runtime by the core MigrationService, which skips duplicate-column errors.
13
+ --
14
+ -- This file is kept as a no-op so that wrangler's migration tracking remains
15
+ -- consistent (it tracks migrations by filename).
16
+ SELECT 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonicjs-cms/core",
3
- "version": "2.16.0",
3
+ "version": "2.17.0",
4
4
  "description": "Core framework for SonicJS headless CMS - Edge-first, TypeScript-native CMS built for Cloudflare Workers",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",