@things-factory/ops-master 10.1.37 → 10.1.38
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-client/bootstrap.js +8 -22
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/master-change-policy-axes.d.ts +17 -0
- package/dist-client/master-change-policy-axes.js +17 -0
- package/dist-client/master-change-policy-axes.js.map +1 -1
- package/dist-client/master-change-policy-panel.d.ts +10 -0
- package/dist-client/master-change-policy-panel.js +79 -20
- package/dist-client/master-change-policy-panel.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/index.js +10 -0
- package/dist-server/index.js.map +1 -1
- package/dist-server/service/index.d.ts +2 -1
- package/dist-server/service/index.js +1 -0
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/master-axis.d.ts +14 -3
- package/dist-server/service/master-axis.js +16 -15
- package/dist-server/service/master-axis.js.map +1 -1
- package/dist-server/service/master-change-policy.d.ts +9 -0
- package/dist-server/service/master-change-policy.js +21 -0
- package/dist-server/service/master-change-policy.js.map +1 -1
- package/dist-server/service/material/material-revision-resolver.d.ts +7 -2
- package/dist-server/service/material/material-revision-resolver.js +18 -0
- package/dist-server/service/material/material-revision-resolver.js.map +1 -1
- package/dist-server/service/material/material-revision-service.d.ts +32 -2
- package/dist-server/service/material/material-revision-service.js +129 -0
- package/dist-server/service/material/material-revision-service.js.map +1 -1
- package/dist-server/service/material/material-revision.d.ts +7 -5
- package/dist-server/service/material/material-revision.js +2 -2
- package/dist-server/service/material/material-revision.js.map +1 -1
- package/dist-server/service/recipe/index.d.ts +1 -1
- package/dist-server/service/recipe/recipe-revision-resolver.d.ts +7 -2
- package/dist-server/service/recipe/recipe-revision-resolver.js +18 -0
- package/dist-server/service/recipe/recipe-revision-resolver.js.map +1 -1
- package/dist-server/service/recipe/recipe-revision-service.d.ts +33 -2
- package/dist-server/service/recipe/recipe-revision-service.js +139 -0
- package/dist-server/service/recipe/recipe-revision-service.js.map +1 -1
- package/dist-server/service/recipe/recipe-revision.d.ts +8 -6
- package/dist-server/service/recipe/recipe-revision.js +2 -2
- package/dist-server/service/recipe/recipe-revision.js.map +1 -1
- package/dist-server/service/revision-baseline.d.ts +63 -0
- package/dist-server/service/revision-baseline.js +72 -0
- package/dist-server/service/revision-baseline.js.map +1 -0
- package/dist-server/service/test-spec/test-spec-revision-resolver.d.ts +7 -2
- package/dist-server/service/test-spec/test-spec-revision-resolver.js +18 -0
- package/dist-server/service/test-spec/test-spec-revision-resolver.js.map +1 -1
- package/dist-server/service/test-spec/test-spec-revision-service.d.ts +37 -2
- package/dist-server/service/test-spec/test-spec-revision-service.js +122 -0
- package/dist-server/service/test-spec/test-spec-revision-service.js.map +1 -1
- package/dist-server/service/test-spec/test-spec-revision.d.ts +7 -5
- package/dist-server/service/test-spec/test-spec-revision.js +2 -2
- package/dist-server/service/test-spec/test-spec-revision.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -5
- package/translations/en.json +5 -1
- package/translations/ja.json +5 -1
- package/translations/ko.json +5 -1
- package/translations/ms.json +5 -1
- package/translations/zh.json +5 -1
|
@@ -82,7 +82,7 @@ tslib_1.__decorate([
|
|
|
82
82
|
tslib_1.__metadata("design:type", String)
|
|
83
83
|
], TestSpecificationRevision.prototype, "reason", void 0);
|
|
84
84
|
tslib_1.__decorate([
|
|
85
|
-
(0, typeorm_1.ManyToOne)(() => auth_base_1.User, { nullable:
|
|
85
|
+
(0, typeorm_1.ManyToOne)(() => auth_base_1.User, { nullable: true }),
|
|
86
86
|
tslib_1.__metadata("design:type", auth_base_1.User)
|
|
87
87
|
], TestSpecificationRevision.prototype, "creator", void 0);
|
|
88
88
|
tslib_1.__decorate([
|
|
@@ -141,7 +141,7 @@ tslib_1.__decorate([
|
|
|
141
141
|
tslib_1.__metadata("design:type", String)
|
|
142
142
|
], TestSpecificationPlan.prototype, "releaseKind", void 0);
|
|
143
143
|
tslib_1.__decorate([
|
|
144
|
-
(0, typeorm_1.ManyToOne)(() => auth_base_1.User, { nullable:
|
|
144
|
+
(0, typeorm_1.ManyToOne)(() => auth_base_1.User, { nullable: true }),
|
|
145
145
|
tslib_1.__metadata("design:type", auth_base_1.User)
|
|
146
146
|
], TestSpecificationPlan.prototype, "publisher", void 0);
|
|
147
147
|
tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-spec-revision.js","sourceRoot":"","sources":["../../../server/service/test-spec/test-spec-revision.ts"],"names":[],"mappings":";;;;AAAA,qCAA0G;AAC1G,iDAA8C;AAC9C,yDAAgD;AAEhD,kEAA4D;AAG5D,0EAA0E;AAC1E,iFAAiF;AACjF,4EAA4E;AAE5E,2FAA2F;AAUpF,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;CAoCrC,CAAA;AApCY,8DAAyB;AAErB;IAAd,IAAA,gBAAM,EAAC,KAAK,CAAC;;iEAAuB;AAErC;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,yCAAkB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;sCACrF,yCAAkB;yDAAA;AAE1B;IADC,IAAA,oBAAU,EAAC,CAAC,GAA8B,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;;2DAC3C;AACgB;IAA/B,IAAA,gCAAsB,EAAC,MAAM,CAAC;;qDAAW;AAE1C;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,cAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;sCACrC,cAAM;yDAAA;AAEd;IADC,IAAA,oBAAU,EAAC,CAAC,GAA8B,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;;2DAC3C;AAEhB;IADC,IAAA,mBAAS,EAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;;uDACjE;AAEvB;IADC,IAAA,oBAAU,EAAC,CAAC,GAA8B,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;;yDAC3C;AAEd;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;sCACrF,yBAAyB;+DAAO;AAE9C;IADC,IAAA,oBAAU,EAAC,CAAC,GAA8B,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC;;iEACpC;AACd;IAAd,IAAA,gBAAM,EAAC,KAAK,CAAC;;iEAAuB;AACN;IAA9B,IAAA,gBAAM,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;iEAAuB;AAClC;IAAlB,IAAA,gBAAM,EAAC,SAAS,CAAC;;0DAAgB;AACE;IAAnC,IAAA,gBAAM,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8DAA2B;AACvC;IAAtB,IAAA,gBAAM,EAAC,aAAa,CAAC;;2DAAuC;AACrC;IAAvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;sCAAgB,IAAI;gEAAA;AAC3B;IAAf,IAAA,gBAAM,EAAC,MAAM,CAAC;;yDAAe;AAE9B;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;sCAClC,gBAAI;0DAAA;AAEb;IADC,IAAA,oBAAU,EAAC,CAAC,GAA8B,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;;4DAC3C;AACO;IAAvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;sCAAY,IAAI;4DAAA;AACC;IAAvC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAAW,IAAI;2DAAO;AACtB;IAAtC,IAAA,gBAAM,EAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8DAA2B;AAE1B;IAAtC,IAAA,gBAAM,EAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qEAAkC;oCAnC7D,yBAAyB;IATrC,IAAA,gBAAM,EAAC,wBAAwB,CAAC;IAChC,IAAA,eAAK,EAAC,+BAA+B,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAClF,IAAA,eAAK,EAAC,4BAA4B,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACpE,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,yCAAkB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACtG,IAAA,oBAAU,EAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAC/F,IAAA,oBAAU,EAAC,2BAA2B,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QACrG,QAAQ,EAAE,UAAU;KACrB,CAAC;IACD,IAAA,eAAK,EAAC,yBAAyB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GAC5E,yBAAyB,CAoCrC;AAED,gFAAgF;AASzE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CA6BjC,CAAA;AA7BY,sDAAqB;AAEhC;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,yCAAkB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;sCACrF,yCAAkB;qDAAA;AAE1B;IADC,IAAA,oBAAU,EAAC,CAAC,GAA0B,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;;uDACvC;AAEhB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;sCACjF,yBAAyB;gEAAA;AAE5C;IADC,IAAA,oBAAU,EAAC,CAAC,GAA0B,EAAE,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC;;kEACvC;AACR;IAAlB,IAAA,gBAAM,EAAC,SAAS,CAAC;;0DAAmC;AACT;IAA3C,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;sCAAY,gBAAI;wDAAA;AACA;IAA1D,IAAA,oBAAU,EAAC,CAAC,GAA0B,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;;0DAAoB;AAC9C;IAA/B,IAAA,gCAAsB,EAAC,MAAM,CAAC;;iDAAW;AAE1C;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,cAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;sCACrC,cAAM;qDAAA;AAEd;IADC,IAAA,oBAAU,EAAC,CAAC,GAA0B,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;;uDACvC;AAEhB;IADC,IAAA,mBAAS,EAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;;mDACjE;AAEvB;IADC,IAAA,oBAAU,EAAC,CAAC,GAA0B,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;;qDACvC;AACC;IAAd,IAAA,gBAAM,EAAC,KAAK,CAAC;;yDAAmB;AACT;IAAvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;sCAAa,IAAI;yDAAA;AACD;IAAtC,IAAA,gBAAM,EAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iEAAkC;AAExE;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChC,gBAAI;uDAAA;AAEd;IADC,IAAA,oBAAU,EAAC,CAAC,GAA0B,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;;yDACvC;AACC;IAAlB,IAAA,gBAAM,EAAC,SAAS,CAAC;;6DAAuB;gCA5B9B,qBAAqB;IARjC,IAAA,gBAAM,EAAC,oBAAoB,CAAC;IAC5B,IAAA,eAAK,EAAC,8BAA8B,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACzF,IAAA,eAAK,EAAC,4BAA4B,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC/E,IAAA,eAAK,EAAC,4BAA4B,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC7E,IAAA,eAAK,EAAC,+BAA+B,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC/E,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,yCAAkB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACtG,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,yBAAyB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACxI,IAAA,oBAAU,EAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;GACnF,qBAAqB,CA6BjC;AASM,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;CAoBpC,CAAA;AApBY,4DAAwB;AACH;IAA/B,IAAA,gCAAsB,EAAC,MAAM,CAAC;;oDAAW;AAE1C;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,cAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;sCACrC,cAAM;wDAAA;AAEd;IADC,IAAA,oBAAU,EAAC,CAAC,GAA6B,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;;0DAC1C;AAEhB;IADC,IAAA,mBAAS,EAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;;sDACjE;AAEvB;IADC,IAAA,oBAAU,EAAC,CAAC,GAA6B,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;;wDAC1C;AAEd;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;sCAC1F,qBAAqB;sDAAA;AAE3B;IADC,IAAA,oBAAU,EAAC,CAAC,GAA6B,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;;wDAC1C;AAEd;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;sCAC1F,yBAAyB;0DAAA;AAEnC;IADC,IAAA,oBAAU,EAAC,CAAC,GAA6B,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;;4DAC1C;AACM;IAAvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;sCAAY,IAAI;2DAAA;AACC;IAAvC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAAU,IAAI;yDAAO;mCAnBjD,wBAAwB;IAPpC,IAAA,gBAAM,EAAC,uBAAuB,CAAC;IAC/B,IAAA,eAAK,EAAC,6BAA6B,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7E,IAAA,oBAAU,EAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAC/F,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvH,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,yBAAyB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QACrG,QAAQ,EAAE,UAAU;KACrB,CAAC;GACW,wBAAwB,CAoBpC;AAED,qFAAqF;AAU9E,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAsBlC,CAAA;AAtBY,wDAAsB;AACD;IAA/B,IAAA,gCAAsB,EAAC,MAAM,CAAC;;kDAAW;AAE1C;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,cAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;sCACrC,cAAM;sDAAA;AAEd;IADC,IAAA,oBAAU,EAAC,CAAC,GAA2B,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;;wDACxC;AAEhB;IADC,IAAA,mBAAS,EAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;;oDACjE;AAEvB;IADC,IAAA,oBAAU,EAAC,CAAC,GAA2B,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;;sDACxC;AACK;IAAlB,IAAA,gBAAM,EAAC,SAAS,CAAC;;yDAAkB;AAEpC;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;sCAC1F,yBAAyB;wDAAA;AAEnC;IADC,IAAA,oBAAU,EAAC,CAAC,GAA2B,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;;0DACxC;AAElB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC;sCAC1F,qBAAqB;oDAAA;AAE3B;IADC,IAAA,oBAAU,EAAC,CAAC,GAA2B,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;;sDACxC;AACK;IAAlB,IAAA,gBAAM,EAAC,SAAS,CAAC;;2DAAoB;AACd;IAAvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;sCAAe,IAAI;4DAAA;AAClB;IAAvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;sCAAa,IAAI;0DAAA;iCArB7B,sBAAsB;IATlC,IAAA,gBAAM,EAAC,qBAAqB,CAAC;IAC7B,IAAA,eAAK,EAAC,6BAA6B,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACpF,IAAA,eAAK,EAAC,2BAA2B,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC7E,IAAA,eAAK,EAAC,yBAAyB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IACpE,IAAA,oBAAU,EAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAC/F,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvH,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,yBAAyB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QACrG,QAAQ,EAAE,UAAU;KACrB,CAAC;GACW,sBAAsB,CAsBlC;AAEY,QAAA,2BAA2B,GAAG;IACzC,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,sBAAsB;CACvB,CAAA","sourcesContent":["import { Column, Entity, ForeignKey, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport type { TestSpecification } from './test-specification'\nimport { MasterChangePolicy } from '../master-change-policy'\nimport type { TestSpecificationCriterion } from '@operato/ops-contract'\n\n// Relations own the columns and RelationId exposes read-only identifiers.\n// Where a composite FK is declared, disable only the redundant single-column FK;\n// the database still enforces existence, domain and specification together.\n\n/** Content and the proposed effective date freeze together. Worklist owns the decision. */\n@Entity('ops_test_spec_revision')\n@Index('ix_test_spec_revision_subject', ['domain', 'spec', 'id'], { unique: true })\n@Index('ix_test_spec_revision_list', ['domain', 'spec', 'createdAt'])\n@ForeignKey(() => MasterChangePolicy, ['domain', 'policy'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('TestSpecification', ['domain', 'spec'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('TestSpecificationRevision', ['domain', 'spec', 'baseRevision'], ['domain', 'spec', 'id'], {\n onDelete: 'RESTRICT'\n})\n@Index('ix_spec_revision_number', ['domain', 'spec', 'revisionNumber'], { unique: true })\nexport class TestSpecificationRevision {\n /** Human revision number within one identity; assigned once under the subject write lock. */\n @Column('int') revisionNumber: number\n @ManyToOne(() => MasterChangePolicy, { nullable: false, createForeignKeyConstraints: false })\n policy: MasterChangePolicy\n @RelationId((row: TestSpecificationRevision) => row.policy)\n policyId: string\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: TestSpecificationRevision) => row.domain)\n domainId: string\n @ManyToOne('TestSpecification', { nullable: false, createForeignKeyConstraints: false })\n spec: TestSpecification\n @RelationId((row: TestSpecificationRevision) => row.spec)\n specId: string\n @ManyToOne(() => TestSpecificationRevision, { nullable: true, createForeignKeyConstraints: false })\n baseRevision: TestSpecificationRevision | null\n @RelationId((row: TestSpecificationRevision) => row.baseRevision)\n baseRevisionId: string | null\n @Column('int') baseGeneration: number\n @Column('int', { default: 0 }) editGeneration: number\n @Column('varchar') version: string\n @Column('text', { nullable: true }) description: string | null\n @Column('simple-json') criteria: TestSpecificationCriterion[]\n @Column({ type: Date }) effectiveFrom: Date\n @Column('text') reason: string\n @ManyToOne(() => User, { nullable: false })\n creator: User\n @RelationId((row: TestSpecificationRevision) => row.creator)\n creatorId: string\n @Column({ type: Date }) createdAt: Date\n @Column({ type: Date, nullable: true }) frozenAt: Date | null\n @Column('varchar', { nullable: true }) contentHash: string | null\n /** Opaque product decision ID: the common master module does not depend on worklist. */\n @Column('varchar', { nullable: true }) activityInstanceId: string | null\n}\n\n/** An append-only generation of the complete schedule for one specification. */\n@Entity('ops_test_spec_plan')\n@Index('ix_test_spec_plan_generation', ['domain', 'spec', 'generation'], { unique: true })\n@Index('ix_test_spec_plan_identity', ['domain', 'spec', 'id'], { unique: true })\n@Index('ix_test_spec_plan_decision', ['activityInstanceId'], { unique: true })\n@Index('ix_test_spec_plan_publication', ['publishedRevision'], { unique: true })\n@ForeignKey(() => MasterChangePolicy, ['domain', 'policy'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => TestSpecificationRevision, ['domain', 'spec', 'publishedRevision'], ['domain', 'spec', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('TestSpecification', ['domain', 'spec'], ['domain', 'id'], { onDelete: 'RESTRICT' })\nexport class TestSpecificationPlan {\n @ManyToOne(() => MasterChangePolicy, { nullable: false, createForeignKeyConstraints: false })\n policy: MasterChangePolicy\n @RelationId((row: TestSpecificationPlan) => row.policy)\n policyId: string\n @ManyToOne(() => TestSpecificationRevision, { nullable: false, createForeignKeyConstraints: false })\n publishedRevision: TestSpecificationRevision\n @RelationId((row: TestSpecificationPlan) => row.publishedRevision)\n publishedRevisionId: string\n @Column('varchar') releaseKind: 'approved' | 'policy'\n @ManyToOne(() => User, { nullable: false }) publisher: User\n @RelationId((row: TestSpecificationPlan) => row.publisher) publisherId: string\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: TestSpecificationPlan) => row.domain)\n domainId: string\n @ManyToOne('TestSpecification', { nullable: false, createForeignKeyConstraints: false })\n spec: TestSpecification\n @RelationId((row: TestSpecificationPlan) => row.spec)\n specId: string\n @Column('int') generation: number\n @Column({ type: Date }) recordedAt: Date\n @Column('varchar', { nullable: true }) activityInstanceId: string | null\n @ManyToOne(() => User, { nullable: true })\n approver: User\n @RelationId((row: TestSpecificationPlan) => row.approver)\n approverId: string\n @Column('varchar') submissionHash: string\n}\n\n@Entity('ops_test_spec_segment')\n@Index('ix_test_spec_segment_lookup', ['domain', 'spec', 'plan', 'validFrom'])\n@ForeignKey('TestSpecification', ['domain', 'spec'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => TestSpecificationPlan, ['domain', 'spec', 'plan'], ['domain', 'spec', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => TestSpecificationRevision, ['domain', 'spec', 'revision'], ['domain', 'spec', 'id'], {\n onDelete: 'RESTRICT'\n})\nexport class TestSpecificationSegment {\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: TestSpecificationSegment) => row.domain)\n domainId: string\n @ManyToOne('TestSpecification', { nullable: false, createForeignKeyConstraints: false })\n spec: TestSpecification\n @RelationId((row: TestSpecificationSegment) => row.spec)\n specId: string\n @ManyToOne(() => TestSpecificationPlan, { nullable: false, createForeignKeyConstraints: false })\n plan: TestSpecificationPlan\n @RelationId((row: TestSpecificationSegment) => row.plan)\n planId: string\n @ManyToOne(() => TestSpecificationRevision, { nullable: false, createForeignKeyConstraints: false })\n revision: TestSpecificationRevision\n @RelationId((row: TestSpecificationSegment) => row.revision)\n revisionId: string\n @Column({ type: Date }) validFrom: Date\n @Column({ type: Date, nullable: true }) validTo: Date | null\n}\n\n/** Permanent evidence of the selected revision, also the retroactivity interlock. */\n@Entity('ops_test_spec_basis')\n@Index('ix_test_spec_basis_identity', ['domain', 'id', 'revision'], { unique: true })\n@Index('ix_test_spec_basis_record', ['domain', 'recordKey'], { unique: true })\n@Index('ix_test_spec_basis_time', ['domain', 'spec', 'businessTime'])\n@ForeignKey('TestSpecification', ['domain', 'spec'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => TestSpecificationPlan, ['domain', 'spec', 'plan'], ['domain', 'spec', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => TestSpecificationRevision, ['domain', 'spec', 'revision'], ['domain', 'spec', 'id'], {\n onDelete: 'RESTRICT'\n})\nexport class TestSpecificationBasis {\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: TestSpecificationBasis) => row.domain)\n domainId: string\n @ManyToOne('TestSpecification', { nullable: false, createForeignKeyConstraints: false })\n spec: TestSpecification\n @RelationId((row: TestSpecificationBasis) => row.spec)\n specId: string\n @Column('varchar') recordKey: string\n @ManyToOne(() => TestSpecificationRevision, { nullable: false, createForeignKeyConstraints: false })\n revision: TestSpecificationRevision\n @RelationId((row: TestSpecificationBasis) => row.revision)\n revisionId: string\n @ManyToOne(() => TestSpecificationPlan, { nullable: false, createForeignKeyConstraints: false })\n plan: TestSpecificationPlan\n @RelationId((row: TestSpecificationBasis) => row.plan)\n planId: string\n @Column('varchar') contentHash: string\n @Column({ type: Date }) businessTime: Date\n @Column({ type: Date }) resolvedAt: Date\n}\n\nexport const TEST_SPEC_REVISION_ENTITIES = [\n TestSpecificationRevision,\n TestSpecificationPlan,\n TestSpecificationSegment,\n TestSpecificationBasis\n]\n"]}
|
|
1
|
+
{"version":3,"file":"test-spec-revision.js","sourceRoot":"","sources":["../../../server/service/test-spec/test-spec-revision.ts"],"names":[],"mappings":"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","sourcesContent":["import { Column, Entity, ForeignKey, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport type { TestSpecification } from './test-specification'\nimport { MasterChangePolicy } from '../master-change-policy'\nimport type { TestSpecificationCriterion } from '@operato/ops-contract'\n\n// Relations own the columns and RelationId exposes read-only identifiers.\n// Where a composite FK is declared, disable only the redundant single-column FK;\n// the database still enforces existence, domain and specification together.\n\n/** Content and the proposed effective date freeze together. Worklist owns the decision. */\n@Entity('ops_test_spec_revision')\n@Index('ix_test_spec_revision_subject', ['domain', 'spec', 'id'], { unique: true })\n@Index('ix_test_spec_revision_list', ['domain', 'spec', 'createdAt'])\n@ForeignKey(() => MasterChangePolicy, ['domain', 'policy'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('TestSpecification', ['domain', 'spec'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('TestSpecificationRevision', ['domain', 'spec', 'baseRevision'], ['domain', 'spec', 'id'], {\n onDelete: 'RESTRICT'\n})\n@Index('ix_spec_revision_number', ['domain', 'spec', 'revisionNumber'], { unique: true })\nexport class TestSpecificationRevision {\n /** Human revision number within one identity; assigned once under the subject write lock. */\n @Column('int') revisionNumber: number\n @ManyToOne(() => MasterChangePolicy, { nullable: false, createForeignKeyConstraints: false })\n policy: MasterChangePolicy\n @RelationId((row: TestSpecificationRevision) => row.policy)\n policyId: string\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: TestSpecificationRevision) => row.domain)\n domainId: string\n @ManyToOne('TestSpecification', { nullable: false, createForeignKeyConstraints: false })\n spec: TestSpecification\n @RelationId((row: TestSpecificationRevision) => row.spec)\n specId: string\n @ManyToOne(() => TestSpecificationRevision, { nullable: true, createForeignKeyConstraints: false })\n baseRevision: TestSpecificationRevision | null\n @RelationId((row: TestSpecificationRevision) => row.baseRevision)\n baseRevisionId: string | null\n @Column('int') baseGeneration: number\n @Column('int', { default: 0 }) editGeneration: number\n @Column('varchar') version: string\n @Column('text', { nullable: true }) description: string | null\n @Column('simple-json') criteria: TestSpecificationCriterion[]\n @Column({ type: Date }) effectiveFrom: Date\n @Column('text') reason: string\n /** Empty only on a baseline: nobody wrote it, it records the row as it already stood. */\n @ManyToOne(() => User, { nullable: true })\n creator: User | null\n @RelationId((row: TestSpecificationRevision) => row.creator)\n creatorId: string | null\n @Column({ type: Date }) createdAt: Date\n @Column({ type: Date, nullable: true }) frozenAt: Date | null\n @Column('varchar', { nullable: true }) contentHash: string | null\n /** Opaque product decision ID: the common master module does not depend on worklist. */\n @Column('varchar', { nullable: true }) activityInstanceId: string | null\n}\n\n/** An append-only generation of the complete schedule for one specification. */\n@Entity('ops_test_spec_plan')\n@Index('ix_test_spec_plan_generation', ['domain', 'spec', 'generation'], { unique: true })\n@Index('ix_test_spec_plan_identity', ['domain', 'spec', 'id'], { unique: true })\n@Index('ix_test_spec_plan_decision', ['activityInstanceId'], { unique: true })\n@Index('ix_test_spec_plan_publication', ['publishedRevision'], { unique: true })\n@ForeignKey(() => MasterChangePolicy, ['domain', 'policy'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => TestSpecificationRevision, ['domain', 'spec', 'publishedRevision'], ['domain', 'spec', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey('TestSpecification', ['domain', 'spec'], ['domain', 'id'], { onDelete: 'RESTRICT' })\nexport class TestSpecificationPlan {\n @ManyToOne(() => MasterChangePolicy, { nullable: false, createForeignKeyConstraints: false })\n policy: MasterChangePolicy\n @RelationId((row: TestSpecificationPlan) => row.policy)\n policyId: string\n @ManyToOne(() => TestSpecificationRevision, { nullable: false, createForeignKeyConstraints: false })\n publishedRevision: TestSpecificationRevision\n @RelationId((row: TestSpecificationPlan) => row.publishedRevision)\n publishedRevisionId: string\n /** `baseline`: stood at boot from a row that predates revisions. No approver, no publisher. */\n @Column('varchar') releaseKind: 'approved' | 'policy' | 'baseline'\n @ManyToOne(() => User, { nullable: true }) publisher: User | null\n @RelationId((row: TestSpecificationPlan) => row.publisher) publisherId: string | null\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: TestSpecificationPlan) => row.domain)\n domainId: string\n @ManyToOne('TestSpecification', { nullable: false, createForeignKeyConstraints: false })\n spec: TestSpecification\n @RelationId((row: TestSpecificationPlan) => row.spec)\n specId: string\n @Column('int') generation: number\n @Column({ type: Date }) recordedAt: Date\n @Column('varchar', { nullable: true }) activityInstanceId: string | null\n @ManyToOne(() => User, { nullable: true })\n approver: User\n @RelationId((row: TestSpecificationPlan) => row.approver)\n approverId: string\n @Column('varchar') submissionHash: string\n}\n\n@Entity('ops_test_spec_segment')\n@Index('ix_test_spec_segment_lookup', ['domain', 'spec', 'plan', 'validFrom'])\n@ForeignKey('TestSpecification', ['domain', 'spec'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => TestSpecificationPlan, ['domain', 'spec', 'plan'], ['domain', 'spec', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => TestSpecificationRevision, ['domain', 'spec', 'revision'], ['domain', 'spec', 'id'], {\n onDelete: 'RESTRICT'\n})\nexport class TestSpecificationSegment {\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: TestSpecificationSegment) => row.domain)\n domainId: string\n @ManyToOne('TestSpecification', { nullable: false, createForeignKeyConstraints: false })\n spec: TestSpecification\n @RelationId((row: TestSpecificationSegment) => row.spec)\n specId: string\n @ManyToOne(() => TestSpecificationPlan, { nullable: false, createForeignKeyConstraints: false })\n plan: TestSpecificationPlan\n @RelationId((row: TestSpecificationSegment) => row.plan)\n planId: string\n @ManyToOne(() => TestSpecificationRevision, { nullable: false, createForeignKeyConstraints: false })\n revision: TestSpecificationRevision\n @RelationId((row: TestSpecificationSegment) => row.revision)\n revisionId: string\n @Column({ type: Date }) validFrom: Date\n @Column({ type: Date, nullable: true }) validTo: Date | null\n}\n\n/** Permanent evidence of the selected revision, also the retroactivity interlock. */\n@Entity('ops_test_spec_basis')\n@Index('ix_test_spec_basis_identity', ['domain', 'id', 'revision'], { unique: true })\n@Index('ix_test_spec_basis_record', ['domain', 'recordKey'], { unique: true })\n@Index('ix_test_spec_basis_time', ['domain', 'spec', 'businessTime'])\n@ForeignKey('TestSpecification', ['domain', 'spec'], ['domain', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => TestSpecificationPlan, ['domain', 'spec', 'plan'], ['domain', 'spec', 'id'], { onDelete: 'RESTRICT' })\n@ForeignKey(() => TestSpecificationRevision, ['domain', 'spec', 'revision'], ['domain', 'spec', 'id'], {\n onDelete: 'RESTRICT'\n})\nexport class TestSpecificationBasis {\n @PrimaryGeneratedColumn('uuid') id: string\n @ManyToOne(() => Domain, { nullable: false })\n domain: Domain\n @RelationId((row: TestSpecificationBasis) => row.domain)\n domainId: string\n @ManyToOne('TestSpecification', { nullable: false, createForeignKeyConstraints: false })\n spec: TestSpecification\n @RelationId((row: TestSpecificationBasis) => row.spec)\n specId: string\n @Column('varchar') recordKey: string\n @ManyToOne(() => TestSpecificationRevision, { nullable: false, createForeignKeyConstraints: false })\n revision: TestSpecificationRevision\n @RelationId((row: TestSpecificationBasis) => row.revision)\n revisionId: string\n @ManyToOne(() => TestSpecificationPlan, { nullable: false, createForeignKeyConstraints: false })\n plan: TestSpecificationPlan\n @RelationId((row: TestSpecificationBasis) => row.plan)\n planId: string\n @Column('varchar') contentHash: string\n @Column({ type: Date }) businessTime: Date\n @Column({ type: Date }) resolvedAt: Date\n}\n\nexport const TEST_SPEC_REVISION_ENTITIES = [\n TestSpecificationRevision,\n TestSpecificationPlan,\n TestSpecificationSegment,\n TestSpecificationBasis\n]\n"]}
|