@spinajs/intl-orm 1.2.127 → 1.2.140
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/lib/decorators.js +1 -0
- package/lib/decorators.js.map +1 -1
- package/lib/index.d.ts +6 -1
- package/lib/index.js +28 -2
- package/lib/index.js.map +1 -1
- package/lib/language.d.ts +1 -0
- package/lib/language.js +27 -0
- package/lib/language.js.map +1 -0
- package/lib/migrations/{IntOrm_2022_06_28_01_13_00.d.ts → IntlOrm_2022_06_28_01_13_00.d.ts} +1 -1
- package/lib/migrations/{IntOrm_2022_06_28_01_13_00.js → IntlOrm_2022_06_28_01_13_00.js} +6 -6
- package/lib/migrations/IntlOrm_2022_06_28_01_13_00.js.map +1 -0
- package/lib/model.d.ts +2 -2
- package/lib/model.js +13 -6
- package/lib/model.js.map +1 -1
- package/package.json +8 -8
- package/lib/migrations/IntOrm_2022_06_28_01_13_00.js.map +0 -1
package/lib/decorators.js
CHANGED
package/lib/decorators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":";;;AAAA,sCAA4E;AAE5E,SAAgB,SAAS;IACvB,OAAO,IAAA,gCAA0B,EAAC,CAAC,KAAuB,EAAE,OAAY,EAAE,WAAmB,EAAE,EAAE;QAC/F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,EAAE;YACf,mFAAmF;YACnF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAS,CAAC,CAAC;SACnE;aAAM;YACL,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;SAC7B;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":";;;AAAA,sCAA4E;AAE5E,SAAgB,SAAS;IACvB,OAAO,IAAA,gCAA0B,EAAC,CAAC,KAAuB,EAAE,OAAY,EAAE,WAAmB,EAAE,EAAE;QAC/F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,EAAE;YACf,mFAAmF;YACnF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAS,CAAC,CAAC;SACnE;aAAM;YACL,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;SAC7B;QAEA,KAAa,CAAC,YAAY,GAAG,IAAI,CAAC;IACrC,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAZD,8BAYC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IModelDescriptor, ModelBase, Orm, OrmRelation, SelectQueryBuilder, QueryBuilder, QueryMiddleware, IBuilderMiddleware } from '@spinajs/orm';
|
|
2
2
|
import { TranslationSource } from '@spinajs/intl';
|
|
3
3
|
declare module '@spinajs/orm' {
|
|
4
4
|
interface ISelectBuilderExtensions<T = any> {
|
|
5
5
|
translate(lang: string): this;
|
|
6
|
+
translated: boolean;
|
|
6
7
|
}
|
|
7
8
|
interface IColumnDescriptor {
|
|
8
9
|
Translate: boolean;
|
|
@@ -20,10 +21,14 @@ export declare class IntlModelMiddleware implements IBuilderMiddleware {
|
|
|
20
21
|
protected _relationQuery: SelectQueryBuilder;
|
|
21
22
|
protected _description: IModelDescriptor;
|
|
22
23
|
constructor(_lang: string, _relationQuery: SelectQueryBuilder, _description: IModelDescriptor);
|
|
24
|
+
afterQueryCreation(_query: QueryBuilder<any>): void;
|
|
23
25
|
afterQuery(data: any[]): any[];
|
|
24
26
|
modelCreation(_: any): ModelBase;
|
|
25
27
|
afterHydration(data: ModelBase[]): Promise<any[]>;
|
|
26
28
|
}
|
|
29
|
+
export declare class IntlQueryMiddleware extends QueryMiddleware {
|
|
30
|
+
afterQueryCreation(builder: QueryBuilder): void;
|
|
31
|
+
}
|
|
27
32
|
export declare class DbTranslationSource extends TranslationSource {
|
|
28
33
|
load(): Promise<{
|
|
29
34
|
[x: string]: any;
|
package/lib/index.js
CHANGED
|
@@ -12,13 +12,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.DbTranslationSource = exports.IntlModelMiddleware = exports.IntlModelRelation = void 0;
|
|
15
|
+
exports.DbTranslationSource = exports.IntlQueryMiddleware = exports.IntlModelMiddleware = exports.IntlModelRelation = void 0;
|
|
16
16
|
const di_1 = require("@spinajs/di");
|
|
17
17
|
const orm_1 = require("@spinajs/orm");
|
|
18
18
|
const intl_1 = require("@spinajs/intl");
|
|
19
19
|
const lodash_1 = __importDefault(require("lodash"));
|
|
20
20
|
const IntlTranslation_1 = require("./models/IntlTranslation");
|
|
21
21
|
const IntlResource_1 = require("./models/IntlResource");
|
|
22
|
+
const language_1 = require("./language");
|
|
23
|
+
const configuration_1 = require("@spinajs/configuration");
|
|
22
24
|
let IntlModelRelation = class IntlModelRelation extends orm_1.OrmRelation {
|
|
23
25
|
constructor(_lang, _orm, _query, _mDescriptor, _parentRelation) {
|
|
24
26
|
super(_orm, _query, {
|
|
@@ -52,6 +54,7 @@ class IntlModelMiddleware {
|
|
|
52
54
|
this._relationQuery = _relationQuery;
|
|
53
55
|
this._description = _description;
|
|
54
56
|
}
|
|
57
|
+
afterQueryCreation(_query) { }
|
|
55
58
|
afterQuery(data) {
|
|
56
59
|
return data;
|
|
57
60
|
}
|
|
@@ -61,6 +64,7 @@ class IntlModelMiddleware {
|
|
|
61
64
|
async afterHydration(data) {
|
|
62
65
|
const self = this;
|
|
63
66
|
const pks = data.map((d) => {
|
|
67
|
+
// do this as one pass
|
|
64
68
|
return d[this._description.PrimaryKey];
|
|
65
69
|
});
|
|
66
70
|
const hydrateMiddleware = {
|
|
@@ -78,7 +82,7 @@ class IntlModelMiddleware {
|
|
|
78
82
|
relData.forEach((rd) => {
|
|
79
83
|
d[rd.Column] = rd.Value;
|
|
80
84
|
});
|
|
81
|
-
d.Language =
|
|
85
|
+
d.Language = self._lang;
|
|
82
86
|
});
|
|
83
87
|
},
|
|
84
88
|
};
|
|
@@ -94,6 +98,13 @@ class IntlModelMiddleware {
|
|
|
94
98
|
}
|
|
95
99
|
exports.IntlModelMiddleware = IntlModelMiddleware;
|
|
96
100
|
orm_1.SelectQueryBuilder.prototype['translate'] = function (lang) {
|
|
101
|
+
/**
|
|
102
|
+
* Cannot translate query that cames from translation middleware !
|
|
103
|
+
*/
|
|
104
|
+
if (this.Owner !== null && this.Owner instanceof IntlModelRelation) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
this.translated = true;
|
|
97
108
|
const descriptor = (0, orm_1.extractModelDescriptor)(this._model);
|
|
98
109
|
const relInstance = this._container.resolve(IntlModelRelation, [lang, this._container.get(orm_1.Orm), this, descriptor, this._owner]);
|
|
99
110
|
relInstance.execute();
|
|
@@ -106,6 +117,21 @@ orm_1.SelectQueryBuilder.prototype['translate'] = function (lang) {
|
|
|
106
117
|
this._relations.push(relInstance);
|
|
107
118
|
return this;
|
|
108
119
|
};
|
|
120
|
+
let IntlQueryMiddleware = class IntlQueryMiddleware extends orm_1.QueryMiddleware {
|
|
121
|
+
afterQueryCreation(builder) {
|
|
122
|
+
if (builder instanceof orm_1.SelectQueryBuilder && !builder.translated) {
|
|
123
|
+
const lang = (0, language_1.guessLanguage)();
|
|
124
|
+
const defaultLanguage = di_1.DI.get(configuration_1.Configuration).get('intl.defaultLocale');
|
|
125
|
+
if (lang && defaultLanguage !== lang) {
|
|
126
|
+
builder.translate(lang);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
IntlQueryMiddleware = __decorate([
|
|
132
|
+
(0, di_1.Injectable)(orm_1.QueryMiddleware)
|
|
133
|
+
], IntlQueryMiddleware);
|
|
134
|
+
exports.IntlQueryMiddleware = IntlQueryMiddleware;
|
|
109
135
|
let DbTranslationSource = class DbTranslationSource extends intl_1.TranslationSource {
|
|
110
136
|
async load() {
|
|
111
137
|
const translations = await IntlTranslation_1.IntlTranslation.all();
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function guessLanguage(lang?: string): string;
|
package/lib/language.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.guessLanguage = void 0;
|
|
4
|
+
const configuration_1 = require("@spinajs/configuration");
|
|
5
|
+
const di_1 = require("@spinajs/di");
|
|
6
|
+
const node_async_hooks_1 = require("node:async_hooks");
|
|
7
|
+
function guessLanguage(lang) {
|
|
8
|
+
let selectedLang = lang;
|
|
9
|
+
if (!selectedLang) {
|
|
10
|
+
const store = di_1.DI.get(node_async_hooks_1.AsyncLocalStorage);
|
|
11
|
+
if (store) {
|
|
12
|
+
const storage = di_1.DI.get(node_async_hooks_1.AsyncLocalStorage).getStore();
|
|
13
|
+
if (!storage || !storage.language) {
|
|
14
|
+
selectedLang = di_1.DI.get(configuration_1.Configuration).get('intl.defaultLocale');
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
selectedLang = storage.language;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
selectedLang = di_1.DI.get(configuration_1.Configuration).get('intl.defaultLocale');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return selectedLang;
|
|
25
|
+
}
|
|
26
|
+
exports.guessLanguage = guessLanguage;
|
|
27
|
+
//# sourceMappingURL=language.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language.js","sourceRoot":"","sources":["../src/language.ts"],"names":[],"mappings":";;;AAAA,0DAAuD;AACvD,oCAAiC;AAEjC,uDAAqD;AAErD,SAAgB,aAAa,CAAC,IAAa;IACzC,IAAI,YAAY,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,KAAK,GAAG,OAAE,CAAC,GAAG,CAAC,oCAAiB,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE;YACT,MAAM,OAAO,GAAG,OAAE,CAAC,GAAG,CAAC,oCAAiB,CAAC,CAAC,QAAQ,EAAuB,CAAC;YAC1E,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACjC,YAAY,GAAG,OAAE,CAAC,GAAG,CAAC,6BAAa,CAAC,CAAC,GAAG,CAAS,oBAAoB,CAAC,CAAC;aACxE;iBAAM;gBACL,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;aACjC;SACF;aAAM;YACL,YAAY,GAAG,OAAE,CAAC,GAAG,CAAC,6BAAa,CAAC,CAAC,GAAG,CAAS,oBAAoB,CAAC,CAAC;SACxE;KACF;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAjBD,sCAiBC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OrmMigration, OrmDriver } from '@spinajs/orm';
|
|
2
|
-
export declare class
|
|
2
|
+
export declare class IntlOrm_2022_06_28_01_13_00 extends OrmMigration {
|
|
3
3
|
up(connection: OrmDriver): Promise<void>;
|
|
4
4
|
down(_connection: OrmDriver): Promise<void>;
|
|
5
5
|
}
|
|
@@ -6,10 +6,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
9
|
+
exports.IntlOrm_2022_06_28_01_13_00 = void 0;
|
|
10
10
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
11
11
|
const orm_1 = require("@spinajs/orm");
|
|
12
|
-
let
|
|
12
|
+
let IntlOrm_2022_06_28_01_13_00 = class IntlOrm_2022_06_28_01_13_00 extends orm_1.OrmMigration {
|
|
13
13
|
async up(connection) {
|
|
14
14
|
await connection.schema().createTable('intl_resources', (table) => {
|
|
15
15
|
table.int('ResourceId').notNull();
|
|
@@ -31,8 +31,8 @@ let IntOrm_2022_06_28_01_13_00 = class IntOrm_2022_06_28_01_13_00 extends orm_1.
|
|
|
31
31
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
32
32
|
async down(_connection) { }
|
|
33
33
|
};
|
|
34
|
-
|
|
34
|
+
IntlOrm_2022_06_28_01_13_00 = __decorate([
|
|
35
35
|
(0, orm_1.Migration)('default')
|
|
36
|
-
],
|
|
37
|
-
exports.
|
|
38
|
-
//# sourceMappingURL=
|
|
36
|
+
], IntlOrm_2022_06_28_01_13_00);
|
|
37
|
+
exports.IntlOrm_2022_06_28_01_13_00 = IntlOrm_2022_06_28_01_13_00;
|
|
38
|
+
//# sourceMappingURL=IntlOrm_2022_06_28_01_13_00.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntlOrm_2022_06_28_01_13_00.js","sourceRoot":"","sources":["../../src/migrations/IntlOrm_2022_06_28_01_13_00.ts"],"names":[],"mappings":";;;;;;;;;AAAA,sDAAsD;AACtD,sCAAkE;AAGlE,IAAa,2BAA2B,GAAxC,MAAa,2BAA4B,SAAQ,kBAAY;IACpD,KAAK,CAAC,EAAE,CAAC,UAAqB;QACnC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;YAChE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;YAClC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACvC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACrC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;YACnE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC;YAC7C,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3I,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACtH,CAAC;IAED,qCAAqC;IACrC,gEAAgE;IACzD,KAAK,CAAC,IAAI,CAAC,WAAsB,IAAkB,CAAC;CAC5D,CAAA;AAxBY,2BAA2B;IADvC,IAAA,eAAS,EAAC,SAAS,CAAC;GACR,2BAA2B,CAwBvC;AAxBY,kEAA2B"}
|
package/lib/model.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ModelBase } from '@spinajs/orm';
|
|
2
|
-
export declare class
|
|
2
|
+
export declare class Translatable extends ModelBase {
|
|
3
3
|
Language: string;
|
|
4
4
|
/**
|
|
5
5
|
* Reloads entity with proper translation
|
|
6
6
|
*
|
|
7
7
|
* @param lang - language to load
|
|
8
8
|
*/
|
|
9
|
-
translate(lang
|
|
9
|
+
translate(lang?: string): Promise<void>;
|
|
10
10
|
update(): Promise<void>;
|
|
11
11
|
}
|
package/lib/model.js
CHANGED
|
@@ -3,32 +3,39 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.Translatable = void 0;
|
|
7
|
+
const di_1 = require("@spinajs/di");
|
|
7
8
|
const orm_1 = require("@spinajs/orm");
|
|
8
9
|
const lodash_1 = __importDefault(require("lodash"));
|
|
9
10
|
const IntlResource_1 = require("./models/IntlResource");
|
|
10
|
-
|
|
11
|
+
const configuration_1 = require("@spinajs/configuration");
|
|
12
|
+
const language_1 = require("./language");
|
|
13
|
+
class Translatable extends orm_1.ModelBase {
|
|
11
14
|
/**
|
|
12
15
|
* Reloads entity with proper translation
|
|
13
16
|
*
|
|
14
17
|
* @param lang - language to load
|
|
15
18
|
*/
|
|
16
19
|
async translate(lang) {
|
|
20
|
+
const selectedLang = (0, language_1.guessLanguage)(lang);
|
|
17
21
|
const translations = await IntlResource_1.IntlResource.where({
|
|
18
22
|
ResourceId: this.PrimaryKeyValue,
|
|
19
23
|
Resource: this.constructor.name,
|
|
20
|
-
Lang:
|
|
24
|
+
Lang: selectedLang,
|
|
21
25
|
});
|
|
22
26
|
translations.forEach((rd) => {
|
|
23
27
|
this[rd.Column] = rd.Value;
|
|
24
28
|
});
|
|
25
|
-
this.Language =
|
|
29
|
+
this.Language = selectedLang;
|
|
26
30
|
}
|
|
27
31
|
async update() {
|
|
28
|
-
|
|
32
|
+
const selectedLang = (0, language_1.guessLanguage)(this.Language);
|
|
33
|
+
const defaultLanguage = di_1.DI.get(configuration_1.Configuration).get('intl.defaultLocale');
|
|
34
|
+
if (!selectedLang || defaultLanguage === selectedLang) {
|
|
29
35
|
await super.update();
|
|
30
36
|
}
|
|
31
37
|
else {
|
|
38
|
+
this.Language = selectedLang;
|
|
32
39
|
// TODO: temporaty use uniqyBy, pls FIX model descriptor proper handling in ORM module
|
|
33
40
|
const tColumns = lodash_1.default.uniqBy(this.ModelDescriptor.Columns.filter((c) => c.Translate), 'Name');
|
|
34
41
|
const { query } = this.createUpdateQuery();
|
|
@@ -57,5 +64,5 @@ class IntlModelBase extends orm_1.ModelBase {
|
|
|
57
64
|
}
|
|
58
65
|
}
|
|
59
66
|
}
|
|
60
|
-
exports.
|
|
67
|
+
exports.Translatable = Translatable;
|
|
61
68
|
//# sourceMappingURL=model.js.map
|
package/lib/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":";;;;;;AAAA,sCAA0D;AAC1D,oDAAuB;AACvB,wDAAqD;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spinajs/intl-orm",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.140",
|
|
4
4
|
"description": "Internationalization support for ORM module",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"private": false,
|
|
@@ -38,18 +38,18 @@
|
|
|
38
38
|
},
|
|
39
39
|
"homepage": "https://github.com/spinajs/main#readme",
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@spinajs/configuration": "^1.2.
|
|
41
|
+
"@spinajs/configuration": "^1.2.137",
|
|
42
42
|
"@spinajs/di": "^1.2.127",
|
|
43
43
|
"@spinajs/exceptions": "^1.2.127",
|
|
44
|
-
"@spinajs/intl": "^1.2.
|
|
45
|
-
"@spinajs/log": "^1.2.
|
|
46
|
-
"@spinajs/orm": "^1.2.
|
|
47
|
-
"@spinajs/reflection": "^1.2.
|
|
44
|
+
"@spinajs/intl": "^1.2.137",
|
|
45
|
+
"@spinajs/log": "^1.2.137",
|
|
46
|
+
"@spinajs/orm": "^1.2.140",
|
|
47
|
+
"@spinajs/reflection": "^1.2.137",
|
|
48
48
|
"luxon": "^2.4.0",
|
|
49
49
|
"typescript-mix": "^3.1.3"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@spinajs/orm-sqlite": "^1.2.
|
|
52
|
+
"@spinajs/orm-sqlite": "^1.2.140"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "4e24f37f4f53b6b4d14981f8a46b4351f98f4ab3"
|
|
55
55
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IntOrm_2022_06_28_01_13_00.js","sourceRoot":"","sources":["../../src/migrations/IntOrm_2022_06_28_01_13_00.ts"],"names":[],"mappings":";;;;;;;;;AAAA,sDAAsD;AACtD,sCAAkE;AAGlE,IAAa,0BAA0B,GAAvC,MAAa,0BAA2B,SAAQ,kBAAY;IACnD,KAAK,CAAC,EAAE,CAAC,UAAqB;QACnC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;YAChE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;YAClC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACvC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACrC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;YACnE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC;YAC7C,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3I,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACtH,CAAC;IAED,qCAAqC;IACrC,gEAAgE;IACzD,KAAK,CAAC,IAAI,CAAC,WAAsB,IAAkB,CAAC;CAC5D,CAAA;AAxBY,0BAA0B;IADtC,IAAA,eAAS,EAAC,SAAS,CAAC;GACR,0BAA0B,CAwBtC;AAxBY,gEAA0B"}
|