@zintrust/core 0.5.8 → 0.7.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/package.json +2 -1
- package/src/index.js +3 -3
- package/src/orm/Model.d.ts +9 -2
- package/src/orm/Model.d.ts.map +1 -1
- package/src/orm/Model.js +49 -3
- package/src/templates/project/basic/app/Controllers/UserController.ts.tpl +1 -1
- package/src/templates/project/basic/package.json.tpl +1 -2
- package/src/zintrust.plugins.d.ts +6 -3
- package/src/zintrust.plugins.d.ts.map +1 -1
- package/src/zintrust.plugins.js +6 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zintrust/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Production-grade TypeScript backend framework for JavaScript",
|
|
5
5
|
"homepage": "https://zintrust.com",
|
|
6
6
|
"repository": {
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"overrides": {
|
|
71
71
|
"ajv": "^8.18.0",
|
|
72
72
|
"axios": "^1.15.0",
|
|
73
|
+
"follow-redirects": "^1.16.0",
|
|
73
74
|
"@tootallnate/once": "^3.0.1",
|
|
74
75
|
"node-forge": "^1.4.0",
|
|
75
76
|
"brace-expansion": "^5.0.5",
|
package/src/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @zintrust/core v0.
|
|
2
|
+
* @zintrust/core v0.7.0
|
|
3
3
|
*
|
|
4
4
|
* ZinTrust Framework - Production-Grade TypeScript Backend
|
|
5
5
|
* Built for performance, type safety, and exceptional developer experience
|
|
6
6
|
*
|
|
7
7
|
* Build Information:
|
|
8
|
-
* Built: 2026-04-
|
|
8
|
+
* Built: 2026-04-17T13:01:13.639Z
|
|
9
9
|
* Node: >=20.0.0
|
|
10
10
|
* License: MIT
|
|
11
11
|
*
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* Available at runtime for debugging and health checks
|
|
22
22
|
*/
|
|
23
23
|
export const ZINTRUST_VERSION = '0.1.41';
|
|
24
|
-
export const ZINTRUST_BUILD_DATE = '2026-04-
|
|
24
|
+
export const ZINTRUST_BUILD_DATE = '2026-04-17T13:01:13.554Z'; // Replaced during build
|
|
25
25
|
export { Application } from './boot/Application.js';
|
|
26
26
|
export { AwsSigV4 } from './common/index.js';
|
|
27
27
|
export { SignedRequest } from './security/SignedRequest.js';
|
package/src/orm/Model.d.ts
CHANGED
|
@@ -86,7 +86,9 @@ type BoundFromUnbound<T extends UnboundModelMethods> = {
|
|
|
86
86
|
[K in keyof T]: T[K] extends (m: IModel, ...args: infer A) => infer R ? (...args: A) => R : never;
|
|
87
87
|
};
|
|
88
88
|
export type DefinedModel<T extends BoundModelMethods> = {
|
|
89
|
-
create: (attributes?: Record<string, unknown> | undefined) => IModel & T
|
|
89
|
+
create: (attributes?: Record<string, unknown> | undefined) => Promise<IModel & T>;
|
|
90
|
+
make: (attributes?: Record<string, unknown> | undefined) => IModel & T;
|
|
91
|
+
new: (attributes?: Record<string, unknown> | undefined) => IModel & T;
|
|
90
92
|
hydrate: (attributes: Record<string, unknown>) => IModel & T;
|
|
91
93
|
hydrateWithRelations(attributes: Record<string, unknown>, related: Record<string, unknown>): IModel & T;
|
|
92
94
|
find: (id: unknown) => Promise<(IModel & T) | null>;
|
|
@@ -127,7 +129,12 @@ export declare function define<const T extends BoundModelMethods>(config: ModelC
|
|
|
127
129
|
* @see FRAMEWORK_REFACTOR_FUNCTION_PATTERN.md for Pattern 2 details
|
|
128
130
|
*/
|
|
129
131
|
export declare const Model: Readonly<{
|
|
130
|
-
create: (config: ModelConfig, attributes?: Record<string, unknown
|
|
132
|
+
create: (config: ModelConfig, attributes?: Record<string, unknown>) => Promise<IModel>;
|
|
133
|
+
make: (config: ModelConfig, attributes?: Record<string, unknown>, options?: {
|
|
134
|
+
hydrate?: boolean;
|
|
135
|
+
exists?: boolean;
|
|
136
|
+
}) => IModel;
|
|
137
|
+
new: (config: ModelConfig, attributes?: Record<string, unknown>, options?: {
|
|
131
138
|
hydrate?: boolean;
|
|
132
139
|
exists?: boolean;
|
|
133
140
|
}) => IModel;
|
package/src/orm/Model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/orm/Model.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/orm/Model.ts"],"names":[],"mappings":"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"}
|
package/src/orm/Model.js
CHANGED
|
@@ -241,6 +241,7 @@ const createAttributeApi = (config, attrs, relations, context) => ({
|
|
|
241
241
|
fillAttributes(config, attrs, newAttrs);
|
|
242
242
|
const original = context.getOriginal();
|
|
243
243
|
for (const key of Object.keys(newAttrs)) {
|
|
244
|
+
context.syncReadableProperty(key);
|
|
244
245
|
if (attrs[key] !== original[key]) {
|
|
245
246
|
context.dirtyFields.add(key);
|
|
246
247
|
}
|
|
@@ -252,6 +253,7 @@ const createAttributeApi = (config, attrs, relations, context) => ({
|
|
|
252
253
|
const nextValue = mutator ? mutator(value, attrs) : value;
|
|
253
254
|
const castedValue = castAttribute(config, key, nextValue);
|
|
254
255
|
attrs[key] = castedValue;
|
|
256
|
+
context.syncReadableProperty(key);
|
|
255
257
|
const original = context.getOriginal();
|
|
256
258
|
if (original[key] === castedValue) {
|
|
257
259
|
context.dirtyFields.delete(key);
|
|
@@ -269,6 +271,7 @@ const createAttributeApi = (config, attrs, relations, context) => ({
|
|
|
269
271
|
getAttributes: () => ({ ...attrs }),
|
|
270
272
|
setRelation: (name, value) => {
|
|
271
273
|
relations[name] = value;
|
|
274
|
+
context.syncReadableProperty(name);
|
|
272
275
|
},
|
|
273
276
|
getRelation: (name) => relations[name],
|
|
274
277
|
toJSON: () => createModelJSON(config, attrs),
|
|
@@ -318,6 +321,28 @@ const createLifecycleApi = (config, attrs, getDb, context) => ({
|
|
|
318
321
|
return deletedValue !== null && deletedValue !== undefined;
|
|
319
322
|
},
|
|
320
323
|
});
|
|
324
|
+
const defineReadableProperty = (model, config, attrs, relations, key) => {
|
|
325
|
+
if (key.length === 0 || key in model) {
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
Object.defineProperty(model, key, {
|
|
329
|
+
configurable: true,
|
|
330
|
+
enumerable: true,
|
|
331
|
+
get: () => {
|
|
332
|
+
if (relations[key] !== undefined) {
|
|
333
|
+
return relations[key];
|
|
334
|
+
}
|
|
335
|
+
return applyAccessor(config, key, attrs);
|
|
336
|
+
},
|
|
337
|
+
set: (value) => {
|
|
338
|
+
if (relations[key] !== undefined) {
|
|
339
|
+
relations[key] = value;
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
model.setAttribute(key, value);
|
|
343
|
+
},
|
|
344
|
+
});
|
|
345
|
+
};
|
|
321
346
|
/**
|
|
322
347
|
* Create a new model instance
|
|
323
348
|
*/
|
|
@@ -337,6 +362,11 @@ export const createModel = (config, attributes = {}, options) => {
|
|
|
337
362
|
}
|
|
338
363
|
original = { ...attrs };
|
|
339
364
|
let modelApi = {};
|
|
365
|
+
const syncReadableProperty = (key) => {
|
|
366
|
+
if (key in attrs || key in relations) {
|
|
367
|
+
defineReadableProperty(modelApi, config, attrs, relations, key);
|
|
368
|
+
}
|
|
369
|
+
};
|
|
340
370
|
modelApi = {
|
|
341
371
|
...createAttributeApi(config, attrs, relations, {
|
|
342
372
|
dirtyFields,
|
|
@@ -346,6 +376,7 @@ export const createModel = (config, attributes = {}, options) => {
|
|
|
346
376
|
setExists: (exists) => {
|
|
347
377
|
isExists = exists;
|
|
348
378
|
},
|
|
379
|
+
syncReadableProperty,
|
|
349
380
|
}),
|
|
350
381
|
...createLifecycleApi(config, attrs, getDb, {
|
|
351
382
|
dirtyFields,
|
|
@@ -360,8 +391,14 @@ export const createModel = (config, attributes = {}, options) => {
|
|
|
360
391
|
}),
|
|
361
392
|
};
|
|
362
393
|
Object.assign(modelApi, createModelRelationships(config));
|
|
394
|
+
Object.keys(attrs).forEach(syncReadableProperty);
|
|
363
395
|
return modelApi;
|
|
364
396
|
};
|
|
397
|
+
const createPersistedModel = async (config, attributes = {}) => {
|
|
398
|
+
const model = createModel(config, attributes);
|
|
399
|
+
await model.save();
|
|
400
|
+
return model;
|
|
401
|
+
};
|
|
365
402
|
/**
|
|
366
403
|
* Get a query builder for a table
|
|
367
404
|
*/
|
|
@@ -403,7 +440,7 @@ const bindUnboundMethods = (model, methods) => {
|
|
|
403
440
|
return bound;
|
|
404
441
|
};
|
|
405
442
|
const extendModel = (model, methods) => {
|
|
406
|
-
const extended =
|
|
443
|
+
const extended = Object.create(Object.getPrototypeOf(model), Object.getOwnPropertyDescriptors(model));
|
|
407
444
|
for (const [name, method] of Object.entries(methods)) {
|
|
408
445
|
extended[name] = method;
|
|
409
446
|
}
|
|
@@ -629,8 +666,15 @@ const createQueryBuilderMethods = (cfg, hydrateModel) => {
|
|
|
629
666
|
const createDefinedModelInternal = (cfg, methodsOrPlan, attach, resolveMethods) => {
|
|
630
667
|
const relationMapping = createRelationMapping(cfg, resolveMethods);
|
|
631
668
|
const hydrateModel = createHydrator(cfg, attach);
|
|
669
|
+
const makeModel = (attributes = {}) => attach(createModel(cfg, attributes));
|
|
632
670
|
return {
|
|
633
|
-
create: (attributes = {}) =>
|
|
671
|
+
create: async (attributes = {}) => {
|
|
672
|
+
const model = makeModel(attributes);
|
|
673
|
+
await model.save();
|
|
674
|
+
return model;
|
|
675
|
+
},
|
|
676
|
+
make: (attributes = {}) => makeModel(attributes),
|
|
677
|
+
new: (attributes = {}) => makeModel(attributes),
|
|
634
678
|
hydrate: (attributes) => hydrateModel(attributes),
|
|
635
679
|
find: async (id) => {
|
|
636
680
|
const model = await find(cfg, id);
|
|
@@ -704,7 +748,9 @@ const bulkInsert = async (config, records) => {
|
|
|
704
748
|
* @see FRAMEWORK_REFACTOR_FUNCTION_PATTERN.md for Pattern 2 details
|
|
705
749
|
*/
|
|
706
750
|
export const Model = Object.freeze({
|
|
707
|
-
create:
|
|
751
|
+
create: createPersistedModel,
|
|
752
|
+
make: createModel,
|
|
753
|
+
new: createModel,
|
|
708
754
|
query,
|
|
709
755
|
find,
|
|
710
756
|
all,
|
|
@@ -64,7 +64,7 @@ const userControllerMethods: IUserController = {
|
|
|
64
64
|
res.status(422).json({ error: 'Name is required' });
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
|
-
const user = User.create(body);
|
|
67
|
+
const user = await User.create(body);
|
|
68
68
|
res.status(201).json({ message: 'User created', user });
|
|
69
69
|
} catch (error) {
|
|
70
70
|
Logger.error('Error creating user:', error);
|
|
@@ -12,8 +12,7 @@
|
|
|
12
12
|
"type-check": "tsc --noEmit"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@zintrust/core": "^{{coreVersion}}"
|
|
16
|
-
"@zintrust/d1-migrator": "^0.4.6"
|
|
15
|
+
"@zintrust/core": "^{{coreVersion}}"
|
|
17
16
|
},
|
|
18
17
|
"devDependencies": {
|
|
19
18
|
"@zintrust/governance": "{{governanceVersion}}",
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* ZinTrust plugin auto-imports
|
|
3
|
+
*
|
|
4
|
+
* In real projects, this file is managed by `zin plugin install` and contains
|
|
5
|
+
* side-effect imports (e.g. `@zintrust/db-sqlite/register`) that register
|
|
6
|
+
* optional adapters/drivers into core registries.
|
|
7
|
+
*
|
|
5
8
|
*/
|
|
6
9
|
export type {};
|
|
7
10
|
export declare const __zintrustGeneratedPluginStub = "zintrust.plugins.ts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zintrust.plugins.d.ts","sourceRoot":"","sources":["../../src/zintrust.plugins.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"zintrust.plugins.d.ts","sourceRoot":"","sources":["../../src/zintrust.plugins.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,YAAY,EAAE,CAAC;AAgBf,eAAO,MAAM,6BAA6B,wBAAwB,CAAC;;AACnE,wBAAkB"}
|
package/src/zintrust.plugins.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* ZinTrust plugin auto-imports
|
|
3
|
+
*
|
|
4
|
+
* In real projects, this file is managed by `zin plugin install` and contains
|
|
5
|
+
* side-effect imports (e.g. `@zintrust/db-sqlite/register`) that register
|
|
6
|
+
* optional adapters/drivers into core registries.
|
|
7
|
+
*
|
|
5
8
|
*/
|
|
6
9
|
import * as TraceRuntime from './runtime/plugins/trace-runtime.js';
|
|
7
10
|
globalThis.__zintrust_system_trace_plugin_requested__ = true;
|