Compare commits

...

28 Commits

Author SHA1 Message Date
semantic-release-bot
82412b2659 chore(release): 6.14.5 [skip ci]
## [6.14.5](https://git.datacontroller.io/dc/dc/compare/v6.14.4...v6.14.5) (2025-03-24)

### Bug Fixes

* improving accessibility lighthouse score ([7f3577c](7f3577c3ef))
* prevent errors when using sqlrc in a DI job in a HOOK ([d1f0879](d1f0879f0a))
* user profile style fix, new select library and table icons ([69f8830](69f883034f))
2025-03-24 23:10:35 +00:00
eef3832e40 Merge pull request 'User profile style fix, new select library and table icons, improved accessibility score' (#150) from styling into main
All checks were successful
Release / Build-production-and-ng-test (push) Successful in 3m53s
Release / Build-and-test-development (push) Successful in 8m14s
Release / release (push) Successful in 8m14s
Reviewed-on: #150
2025-03-24 22:42:40 +00:00
63b75a1c61 Merge branch 'main' into styling
All checks were successful
Build / Build-and-ng-test (pull_request) Successful in 3m51s
Build / Build-and-test-development (pull_request) Successful in 8m14s
2025-03-24 22:42:31 +00:00
d1f0879f0a fix: prevent errors when using sqlrc in a DI job in a HOOK
Some checks failed
Release / release (push) Blocked by required conditions
Release / Build-production-and-ng-test (push) Successful in 3m54s
Release / Build-and-test-development (push) Has been cancelled
2025-03-24 21:35:17 +00:00
Mihajlo Medjedovic
36416aab2e style: lint
All checks were successful
Build / Build-and-ng-test (pull_request) Successful in 3m53s
Build / Build-and-test-development (pull_request) Successful in 8m16s
2025-03-21 14:08:57 +01:00
Mihajlo Medjedovic
7f3577c3ef fix: improving accessibility lighthouse score 2025-03-21 14:08:24 +01:00
Mihajlo Medjedovic
69f883034f fix: user profile style fix, new select library and table icons
Some checks failed
Build / Build-and-ng-test (pull_request) Failing after 49s
Build / Build-and-test-development (pull_request) Successful in 8m21s
2025-03-20 17:33:35 +01:00
semantic-release-bot
1c56af01d0 chore(release): 6.14.4 [skip ci]
## [6.14.4](https://git.datacontroller.io/dc/dc/compare/v6.14.3...v6.14.4) (2025-03-18)

### Bug Fixes

* removing cli dependency warnings2 ([43c0f73](43c0f73c21))
2025-03-18 14:11:11 +00:00
Allan
43c0f73c21 fix: removing cli dependency warnings2
All checks were successful
Release / Build-production-and-ng-test (push) Successful in 3m57s
Release / Build-and-test-development (push) Successful in 8m16s
Release / release (push) Successful in 8m11s
2025-03-18 13:45:55 +00:00
Allan
e8cd3d63da chore: bumping CLI and core
Some checks failed
Release / Build-production-and-ng-test (push) Successful in 3m55s
Release / Build-and-test-development (push) Successful in 8m14s
Release / release (push) Failing after 3m39s
2025-03-18 11:38:16 +00:00
semantic-release-bot
b7f564cb21 chore(release): 6.14.3 [skip ci]
## [6.14.3](https://git.datacontroller.io/dc/dc/compare/v6.14.2...v6.14.3) (2025-03-15)

### Bug Fixes

* NLDAT & NLDATM formats are now being staged ([3f5cb1e](3f5cb1e2de))
2025-03-15 23:06:45 +00:00
Allan
3f5cb1e2de fix: NLDAT & NLDATM formats are now being staged
All checks were successful
Release / Build-production-and-ng-test (push) Successful in 3m54s
Release / Build-and-test-development (push) Successful in 8m17s
Release / release (push) Successful in 8m34s
2025-03-15 22:50:42 +00:00
semantic-release-bot
7d8c0472f0 chore(release): 6.14.2 [skip ci]
## [6.14.2](https://git.datacontroller.io/dc/dc/compare/v6.14.1...v6.14.2) (2025-03-10)

### Bug Fixes

* improving instructions for setup ([83b3d77](83b3d775b6))
2025-03-10 16:13:24 +00:00
b8b516ba77 Merge pull request 'fix: improving instructions for setup' (#146) from intro into main
All checks were successful
Release / Build-production-and-ng-test (push) Successful in 5m4s
Release / Build-and-test-development (push) Successful in 9m56s
Release / release (push) Successful in 10m43s
Reviewed-on: #146
2025-03-10 15:53:45 +00:00
Allan
83b3d775b6 fix: improving instructions for setup
All checks were successful
Build / Build-and-ng-test (pull_request) Successful in 5m14s
Build / Build-and-test-development (pull_request) Successful in 9m48s
2025-03-07 14:44:12 +00:00
semantic-release-bot
aea252ccc6 chore(release): 6.14.1 [skip ci]
## [6.14.1](https://git.datacontroller.io/dc/dc/compare/v6.14.0...v6.14.1) (2025-03-05)

### Bug Fixes

* handle national language datetime formats ([149e318](149e318a87))
* updating logic to use NLDAT formats ([95289aa](95289aa952))
2025-03-05 15:28:45 +00:00
d8908f9c7f Merge pull request 'fix: handle national language datetime formats' (#144) from fix-nldatm into main
All checks were successful
Release / Build-production-and-ng-test (push) Successful in 4m48s
Release / Build-and-test-development (push) Successful in 9m38s
Release / release (push) Successful in 10m26s
Reviewed-on: #144
2025-03-05 14:50:58 +00:00
Allan
95289aa952 fix: updating logic to use NLDAT formats
All checks were successful
Build / Build-and-ng-test (pull_request) Successful in 5m3s
Build / Build-and-test-development (pull_request) Successful in 9m47s
2025-03-05 14:49:56 +00:00
Henrik Forsell
149e318a87 fix: handle national language datetime formats
All checks were successful
Build / Build-and-ng-test (pull_request) Successful in 5m9s
Build / Build-and-test-development (pull_request) Successful in 9m58s
2025-03-05 14:34:51 +01:00
semantic-release-bot
8657826e60 chore(release): 6.14.0 [skip ci]
# [6.14.0](https://git.datacontroller.io/dc/dc/compare/v6.13.2...v6.14.0) (2025-02-26)

### Features

* uses SORTSEQ=LINGUISTIC for the services/metanav/metadetails service ([a45f5bb](a45f5bb3b2))
2025-02-26 19:44:07 +00:00
Allan
a45f5bb3b2 feat: uses SORTSEQ=LINGUISTIC for the services/metanav/metadetails service
All checks were successful
Release / Build-production-and-ng-test (push) Successful in 4m49s
Release / Build-and-test-development (push) Successful in 9m42s
Release / release (push) Successful in 10m27s
2025-02-26 19:24:53 +00:00
Allan
ae9a91a7a1 chore: bumping sasjs/core to 4.54
Some checks failed
Release / Build-and-test-development (push) Has been cancelled
Release / release (push) Has been cancelled
Release / Build-production-and-ng-test (push) Has been cancelled
2025-02-26 19:21:07 +00:00
semantic-release-bot
3638bde633 chore(release): 6.13.2 [skip ci]
## [6.13.2](https://git.datacontroller.io/dc/dc/compare/v6.13.1...v6.13.2) (2025-02-26)

### Bug Fixes

* get metadata email if exists ([1bd0eef](1bd0eef913))
2025-02-26 12:25:46 +00:00
3a2361f42c Merge pull request 'fix: get metadata email if exists' (#143) from fix-mpe_alerts-metadata-emails into main
All checks were successful
Release / Build-production-and-ng-test (push) Successful in 4m45s
Release / Build-and-test-development (push) Successful in 9m37s
Release / release (push) Successful in 10m32s
Reviewed-on: #143
2025-02-26 12:06:51 +00:00
Henrik Forsell
1bd0eef913 fix: get metadata email if exists
All checks were successful
Build / Build-and-ng-test (pull_request) Successful in 5m4s
Build / Build-and-test-development (pull_request) Successful in 9m53s
2025-02-26 12:19:58 +01:00
85aa3b38b7 Merge pull request 'fix: Added missing=STRING to enable national chars' (#142) from metadetails-national-chars into main
Some checks failed
Release / Build-production-and-ng-test (push) Successful in 4m55s
Release / Build-and-test-development (push) Successful in 9m52s
Release / release (push) Failing after 4m37s
Reviewed-on: #142
2025-02-18 11:59:51 +00:00
678859a68d Merge branch 'main' into metadetails-national-chars
Some checks failed
Build / Build-and-test-development (pull_request) Has been cancelled
Build / Build-and-ng-test (pull_request) Has been cancelled
2025-02-18 11:54:15 +00:00
Henrik Forsell
e531acee3f Added missing=STRING to enable national chars
Some checks failed
Build / Build-and-ng-test (pull_request) Successful in 5m25s
Build / Build-and-test-development (pull_request) Has been cancelled
2025-02-18 12:46:45 +01:00
37 changed files with 2273 additions and 2263 deletions

View File

@ -1,3 +1,55 @@
## [6.14.5](https://git.datacontroller.io/dc/dc/compare/v6.14.4...v6.14.5) (2025-03-24)
### Bug Fixes
* improving accessibility lighthouse score ([7f3577c](https://git.datacontroller.io/dc/dc/commit/7f3577c3ef9f44e55a58bc64fbf89a3a64006dd4))
* prevent errors when using sqlrc in a DI job in a HOOK ([d1f0879](https://git.datacontroller.io/dc/dc/commit/d1f0879f0acf7e816c80f7635fd02f4f284214ed))
* user profile style fix, new select library and table icons ([69f8830](https://git.datacontroller.io/dc/dc/commit/69f883034fabbed31aa5d832e20561c4ae3042db))
## [6.14.4](https://git.datacontroller.io/dc/dc/compare/v6.14.3...v6.14.4) (2025-03-18)
### Bug Fixes
* removing cli dependency warnings2 ([43c0f73](https://git.datacontroller.io/dc/dc/commit/43c0f73c2189ff762986a964caae6b0b108164fc))
## [6.14.3](https://git.datacontroller.io/dc/dc/compare/v6.14.2...v6.14.3) (2025-03-15)
### Bug Fixes
* NLDAT & NLDATM formats are now being staged ([3f5cb1e](https://git.datacontroller.io/dc/dc/commit/3f5cb1e2defe390220e904e4bf04a165cb31fec4))
## [6.14.2](https://git.datacontroller.io/dc/dc/compare/v6.14.1...v6.14.2) (2025-03-10)
### Bug Fixes
* improving instructions for setup ([83b3d77](https://git.datacontroller.io/dc/dc/commit/83b3d775b6e33653b087ca9f4eb3ad5b0dbbd479))
## [6.14.1](https://git.datacontroller.io/dc/dc/compare/v6.14.0...v6.14.1) (2025-03-05)
### Bug Fixes
* handle national language datetime formats ([149e318](https://git.datacontroller.io/dc/dc/commit/149e318a8787be0109f25aeec3a1270ea75a97b2))
* updating logic to use NLDAT formats ([95289aa](https://git.datacontroller.io/dc/dc/commit/95289aa9524d3cb2b1c248cfb84f6b0d0a490c32))
# [6.14.0](https://git.datacontroller.io/dc/dc/compare/v6.13.2...v6.14.0) (2025-02-26)
### Features
* uses SORTSEQ=LINGUISTIC for the services/metanav/metadetails service ([a45f5bb](https://git.datacontroller.io/dc/dc/commit/a45f5bb3b27a86da5f55ff28c9c7669956484ddf))
## [6.13.2](https://git.datacontroller.io/dc/dc/compare/v6.13.1...v6.13.2) (2025-02-26)
### Bug Fixes
* get metadata email if exists ([1bd0eef](https://git.datacontroller.io/dc/dc/commit/1bd0eef913593579771c647d80010ce628c00819))
## [6.13.1](https://git.datacontroller.io/dc/dc/compare/v6.13.0...v6.13.1) (2025-02-18)

View File

@ -10,7 +10,7 @@ const check = (cwd) => {
onlyAllow:
'AFLv2.1;Apache 2.0;Apache-2.0;Apache*;Artistic-2.0;0BSD;BSD*;BSD-2-Clause;BSD-3-Clause;CC0-1.0;CC-BY-3.0;CC-BY-4.0;ISC;MIT;MPL-2.0;ODC-By-1.0;Python-2.0;Unlicense;',
excludePackages:
'@cds/city@1.1.0;@handsontable/angular@14.6.2;handsontable@14.6.2;hyperformula@2.7.1;jackspeak@3.4.3;path-scurry@1.11.1;package-json-from-dist@1.0.1'
'@cds/city@1.1.0;@handsontable/angular@15.2.0;handsontable@15.2.0;hyperformula@2.7.1;hyperformula@3.0.0;jackspeak@3.4.3;path-scurry@1.11.1;package-json-from-dist@1.0.1'
},
(error, json) => {
if (error) {

1793
client/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -44,11 +44,11 @@
"@angular/platform-browser": "^17.3.3",
"@angular/platform-browser-dynamic": "^17.3.3",
"@angular/router": "^17.3.3",
"@cds/core": "^6.10.0",
"@clr/angular": "^17.0.1",
"@cds/core": "^6.15.1",
"@clr/angular": "^17.8.0",
"@clr/icons": "^13.0.2",
"@clr/ui": "^17.0.1",
"@handsontable/angular": "^14.3.0",
"@clr/ui": "^17.8.0",
"@handsontable/angular": "^15.2.0",
"@sasjs/adapter": "^4.11.0",
"@sasjs/utils": "^3.4.0",
"@sheet/crypto": "file:libraries/sheet-crypto.tgz",
@ -60,7 +60,7 @@
"crypto-js": "^4.2.0",
"d3-graphviz": "^5.0.2",
"fs-extra": "^7.0.1",
"handsontable": "^14.3.0",
"handsontable": "^15.2.0",
"https-browserify": "1.0.0",
"hyperformula": "^2.5.0",
"iconv-lite": "^0.5.0",

View File

@ -139,10 +139,15 @@
[routerLink]="['/']"
class="nav-link"
>
<img class="without-text d-block d-md-none" src="images/dc-logo.svg" />
<img
class="without-text d-block d-md-none"
src="images/dc-logo.svg"
alt="datacontroller logo without text"
/>
<img
class="with-text d-none d-md-block"
src="images/datacontroller.svg"
alt="datacontroller logo"
/>
</a>
@ -283,7 +288,11 @@
<!-- App Loading Page -->
<div *ngIf="!startupDataLoaded" class="app-loading">
<img class="loading-logo" src="images/datacontroller.svg" />
<img
class="loading-logo"
src="images/datacontroller.svg"
alt="datacontroller logo"
/>
<div *ngIf="appActive === null" class="slider">
<div class="line"></div>

View File

@ -98,7 +98,7 @@ header {
}
.nav-link.active {
background: #61717D;
background: #1d2f3d;
}
}
@ -444,4 +444,4 @@ header {
padding: 0rem 0rem 0rem 0rem;
}
}
}

View File

@ -10,11 +10,13 @@
</p>
<p class="m-0 mt-10">
Please specify a physical directory below, to which user
<strong>{{ SYSUSERID }}</strong> can write, on behalf of Data Controller:
Please specify a physical directory (on the
<strong> {{ SYSHOSTNAME }}</strong>
compute server) below, to which user
<strong>{{ SYSUSERID }}</strong> can write, on behalf of Data Controller.
</p>
<label class="mt-20 clr-control-label">DC Directory</label>
<label class="mt-20 clr-control-label">DC Staging Directory</label>
<div class="mb-10 clr-control-container">
<div class="clr-input-wrapper">
<input

View File

@ -137,6 +137,11 @@
font-size: .541667rem;
margin-right: 6px;
.clr-input-group {
width: 100%;
border: 0;
}
input {
width: 100%;
border: 0;
@ -235,4 +240,4 @@
.validation-info-alert {
width: 310px
}
}

View File

@ -200,6 +200,7 @@
clrTooltipTrigger
(click)="datasetInfo = true"
shape="info-circle"
aria-label="View dataset meta info"
class="is-highlight cursor-pointer"
size="24"
></clr-icon>

View File

@ -225,6 +225,7 @@ hot-table {
.view-table {
font-size: inherit !important;
color: #1a57bb !important;
}
// When width is smaller remove the text from the buttons
@ -243,4 +244,4 @@ hot-table {
// we will remove it if no issues found
// .filter-modal {
// z-index: 1210;
// }
// }

View File

@ -123,11 +123,11 @@
</div>
<div *ngIf="!loading" class="no-table-selected">
<clr-icon
shape="warning-standard"
size="60"
class="is-info icon-dc-fill"
></clr-icon>
<img
src="images/select-table.png"
class="select-table-icon"
alt="select table icon"
/>
<p
*ngIf="treeNodeLibraries?.length! > 0"
class="text-center color-gray mt-10"

View File

@ -127,7 +127,7 @@
class="no-table-selected pointer-events-none"
>
<clr-icon
shape="warning-standard"
shape="upload-cloud"
size="40"
class="is-info icon-dc-fill"
></clr-icon>

View File

@ -89,6 +89,7 @@
<clr-dg-cell class="p-0 d-flex justify-content-center">
<button
class="btn btn-success"
aria-label="Download audit file"
[id]="approveItem.tableId"
(click)="
download(approveItem.tableId); $event.stopPropagation()

View File

@ -47,7 +47,12 @@
</table>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="openModal = false">
<button
type="button"
aria-label="Close modal"
class="btn btn-outline"
(click)="openModal = false"
>
OK
</button>
</div>
@ -119,6 +124,7 @@
<clr-dg-cell class="verCenter">{{ historyItem.reviewed }}</clr-dg-cell>
<clr-dg-cell class="verCenter p-0 d-flex justify-content-center">
<button
aria-label="Download audit file"
class="btn btn-success"
(click)="download(historyItem.tableId); $event.stopPropagation()"
>

View File

@ -64,7 +64,11 @@
<!-- <clr-dg-cell>{{sub.approver}}</clr-dg-cell> -->
<clr-dg-cell>{{ sub.submitReason }}</clr-dg-cell>
<clr-dg-cell>
<div class="row justify-content-around" role="tooltip">
<div
class="row justify-content-around"
role="tooltip"
aria-label="Go to staged data screen"
>
<a
class="column-center links tooltip tooltip-md tooltip-bottom-left color-blue"
(click)="goToStage(sub.tableId)"
@ -79,6 +83,7 @@
<clr-dg-cell class="p-0 d-flex justify-content-center">
<button
class="btn btn-success"
aria-label="Download audit file for table record"
(click)="download(sub.tableId); $event.stopPropagation()"
>
<clr-icon shape="download"></clr-icon>

View File

@ -1,13 +1,17 @@
<div class="login-sidebar-wrapper" [class.active]="isActive">
<div class="login-sidebar sideBarProps">
<!--img src="images/data_controller.png" alt=""-->
<img class="login-logo" src="images/datacontroller.svg" alt="" />
<img
class="login-logo"
src="images/datacontroller.svg"
alt="datacontroller logo"
/>
<form class="login" (ngSubmit)="submit()">
<label class="title">
<h3 class="welcome">Welcome to</h3>
Data Controller
<h5 class="hint">Capture, Review, and Approve</h5>
<h4 class="hint">Capture, Review, and Approve</h4>
</label>
<div class="login-group">
<input

View File

@ -111,7 +111,7 @@
}
::ng-deep .login-sidebar-wrapper .login-group {
.clr-control-container, .username, .password {
.clr-control-container, .clr-input-group, .username, .password {
width: 100%;
}
@ -126,4 +126,4 @@
.login-logo {
max-width: 200px
}
}

View File

@ -11,7 +11,7 @@
class="d-flex justify-content-center sub-dropdown"
>
<clr-dropdown>
<button class="dropdown-toggle btn btn-link" clrDropdownTrigger>
<button class="dropdown-toggle btn btn-primary" clrDropdownTrigger>
{{ getSubPage() }}
<clr-icon shape="caret down"></clr-icon>
</button>
@ -113,7 +113,7 @@
class="d-flex justify-content-center sub-dropdown"
>
<clr-dropdown>
<button class="dropdown-toggle btn btn-link" clrDropdownTrigger>
<button class="dropdown-toggle btn btn-primary" clrDropdownTrigger>
{{ getSubPage() }}
<clr-icon shape="caret down"></clr-icon>
</button>

View File

@ -79,4 +79,4 @@ clr-vertical-nav {
bottom: 0;
top: 0;
}
}
}

View File

@ -23,10 +23,13 @@
<app-loading-indicator></app-loading-indicator>
<clr-dropdown class="app-nav-dropdown">
<button class="nav-text color-white" clrDropdownToggle>
<button class="nav-text color-white user-nav-toggle" clrDropdownToggle>
<span>{{ userName }}</span>
<span *ngIf="userName !== 'Not logged in' && isViya"
><img class="avatar-img" src="{{ getPictureUrl() }}" alt=""
><img
class="avatar-img"
src="{{ getPictureUrl() }}"
alt="profile picture"
/></span>
<span
class="badge badge-danger"

View File

@ -19,6 +19,13 @@ $clr-light-gray: #eee;
}
}
.user-nav-toggle {
padding: 0 10px !important;
display: flex;
align-items: center;
height: 100%;
}
.app-nav-dropdown {
//left padding for branding is also 24px
padding-right: 15px;
@ -146,4 +153,4 @@ $clr-light-gray: #eee;
height: 40px;
margin-left: 10px;
border-radius: 50px;
}
}

View File

@ -375,6 +375,7 @@
<clr-icon
clrTooltipTrigger
(click)="datasetInfo = true"
aria-label="View dataset meta info"
shape="info-circle"
class="is-highlight cursor-pointer"
size="24"
@ -480,11 +481,11 @@
*ngIf="!lib && !table && !noDataReqErr && !noData"
class="no-table-selected"
>
<clr-icon
shape="warning-standard"
size="60"
class="is-info icon-dc-fill"
></clr-icon>
<img
src="images/select-library.png"
class="select-table-icon"
alt="select a library icon"
/>
<h3 class="text-center color-gray mt-10" cds-text="section">
Please select a library
</h3>
@ -520,11 +521,11 @@
*ngIf="libinfo !== null"
class="no-table-selected-info pointer-events-none"
>
<clr-icon
shape="info-standard"
size="40"
class="is-info icon-dc-fill"
></clr-icon>
<img
src="images/select-table.png"
class="select-table-icon"
alt="select table icon"
/>
<p class="text-center color-gray mt-10" cds-text="section">
Please select a table
</p>

View File

@ -45,11 +45,11 @@
<div class="content-area">
<div *ngIf="!selectedXLMap" class="no-table-selected">
<clr-icon
shape="warning-standard"
size="60"
class="is-info icon-dc-fill"
></clr-icon>
<img
src="images/select-table.png"
class="select-table-icon"
alt="select table icon"
/>
<p
*ngIf="xlmaps.length > 0"
class="text-center color-gray mt-10"
@ -101,7 +101,7 @@
<i class="d-flex clr-col-12 clr-justify-content-center mt-5-i">{{
selectedXLMap.description
}}</i>
<h5 class="d-flex clr-col-12 clr-justify-content-center mt-5-i">
<p class="d-flex clr-col-12 clr-justify-content-center mt-5-i">
Rules Source:
<a
cds-text="labelLink"
@ -110,8 +110,8 @@
>
{{ rulesSource }}
</a>
</h5>
<h5 class="d-flex clr-col-12 clr-justify-content-center mt-5-i">
</p>
<p class="d-flex clr-col-12 clr-justify-content-center mt-5-i">
Target dataset:
<a
cds-text="labelLink"
@ -120,7 +120,7 @@
>
{{ selectedXLMap.targetDS }}
</a>
</h5>
</p>
</div>
<div class="clr-flex-1">

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -1,5 +1,5 @@
<!doctype html>
<html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Data Controller</title>

View File

@ -76,6 +76,14 @@ body[cds-theme="light"] {
}
}
.select-table-icon {
width: 80px;
}
.select-library-icon {
width: 80px;
}
[cds-text=label] {
color: var(--cds-global-typography-color-200);
}

View File

@ -13,6 +13,7 @@
"ES2022",
"dom"
],
"skipLibCheck": true,
"module": "ES2022",
"importHelpers": true,
"moduleResolution": "node",

2145
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "dcfrontend",
"version": "6.13.1",
"version": "6.14.5",
"description": "Data Controller",
"devDependencies": {
"@saithodev/semantic-release-gitea": "^2.1.0",

355
sas/package-lock.json generated
View File

@ -6,8 +6,8 @@
"": {
"name": "dc-sas",
"dependencies": {
"@sasjs/cli": "^4.11.1",
"@sasjs/core": "^4.53.0"
"@sasjs/cli": "^4.12.2",
"@sasjs/core": "^4.56.1"
}
},
"node_modules/@coolaj86/urequest": {
@ -19,6 +19,7 @@
"version": "4.3.5",
"resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz",
"integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==",
"license": "MIT",
"dependencies": {
"@types/node": "^14.0.1",
"lodash.escaperegexp": "^4.1.2",
@ -29,68 +30,34 @@
}
},
"node_modules/@sasjs/adapter": {
"version": "4.10.1",
"resolved": "https://registry.npmjs.org/@sasjs/adapter/-/adapter-4.10.1.tgz",
"integrity": "sha512-/z6eR+3nNaLPyycK8YmpF+GAWNy0zgdl8n4cv4r45hjVBulPHVop7oj57JM/0uIPVOTT2V9IwrMCT/sFPq++vw==",
"version": "4.11.3",
"resolved": "https://registry.npmjs.org/@sasjs/adapter/-/adapter-4.11.3.tgz",
"integrity": "sha512-KF6G4vzs4l4efjpCD02og3kB44uFfJ1u2UWu749VdHtLKNN9l+PO26/moR+YAmRmmz2I9sC3X09fZE1nlN6zgw==",
"hasInstallScript": true,
"license": "ISC",
"dependencies": {
"@sasjs/utils": "2.52.0",
"axios": "0.27.2",
"axios-cookiejar-support": "1.0.1",
"@sasjs/utils": "3.5.2",
"axios": "1.8.2",
"axios-cookiejar-support": "5.0.5",
"form-data": "4.0.0",
"https": "1.0.0",
"tough-cookie": "4.1.3"
}
},
"node_modules/@sasjs/adapter/node_modules/@sasjs/utils": {
"version": "2.52.0",
"resolved": "https://registry.npmjs.org/@sasjs/utils/-/utils-2.52.0.tgz",
"integrity": "sha512-UbmYCdfCvjRpmoKRnbmKEcE2YZJh9zHjjGyuZ5BIDxThDtOsGZUOiZrW1J7WcrzjAwQiRBzYoV7xF5MiZqtgiQ==",
"hasInstallScript": true,
"dependencies": {
"@types/fs-extra": "9.0.13",
"@types/prompts": "2.0.13",
"chalk": "4.1.1",
"cli-table": "0.3.6",
"consola": "2.15.0",
"csv-stringify": "5.6.5",
"find": "0.3.0",
"fs-extra": "10.0.0",
"jwt-decode": "3.1.2",
"prompts": "2.4.1",
"rimraf": "3.0.2",
"valid-url": "1.0.9"
}
},
"node_modules/@sasjs/adapter/node_modules/chalk": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
"integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/@sasjs/cli": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/@sasjs/cli/-/cli-4.11.1.tgz",
"integrity": "sha512-aI8V3YJGFXcY9OlNas0h8ZrajLIRPn4KmGkaOLHTDa8rZ2SOtj6W5by1RwyPB9iPIHcqW3JV3OgmtEB048zuYQ==",
"version": "4.12.2",
"resolved": "https://registry.npmjs.org/@sasjs/cli/-/cli-4.12.2.tgz",
"integrity": "sha512-/U0V11WI4QJezCpYgbqil/InN46Hges4sknh/Jyqo10VemcezEAGjTdfVIS1P09RUQ0Atdx0OSCh6TpMMXNWwQ==",
"hasInstallScript": true,
"license": "ISC",
"dependencies": {
"@sasjs/adapter": "4.10.1",
"@sasjs/core": "4.46.3",
"@sasjs/lint": "2.3.1",
"@sasjs/utils": "3.4.0",
"@sasjs/adapter": "4.11.3",
"@sasjs/core": "4.56.1",
"@sasjs/lint": "2.4.3",
"@sasjs/utils": "3.5.2",
"adm-zip": "0.5.10",
"chalk": "4.1.2",
"dotenv": "16.0.3",
"esm": "3.2.25",
"find": "0.3.0",
"js-base64": "3.7.5",
"jsdom": "22.1.0",
@ -100,7 +67,6 @@
"node-graphviz": "0.1.1",
"node-powershell": "5.0.1",
"ora": "5.4.1",
"rimraf": "3.0.2",
"shelljs": "0.8.5",
"ssl-root-cas": "1.3.1",
"xml": "1.0.1",
@ -110,79 +76,40 @@
"sasjs": "build/index.js"
}
},
"node_modules/@sasjs/cli/node_modules/@sasjs/core": {
"version": "4.46.3",
"resolved": "https://registry.npmjs.org/@sasjs/core/-/core-4.46.3.tgz",
"integrity": "sha512-Grwydm5GxBsYk238PZw41XPjXVVQ9vWcvfZ06L2P0bQbvK0sGn7l69JA7H5MGr3QcaLpiD4Kg70cAh7PgE+JOw=="
},
"node_modules/@sasjs/core": {
"version": "4.53.0",
"resolved": "https://registry.npmjs.org/@sasjs/core/-/core-4.53.0.tgz",
"integrity": "sha512-bGLa9OUlrA6s8+TFjoxc1/0B7LlR+f1gLEXU5vNnrxbidOZ8raR+i1vgBtF4Ux9432G8g+Ju80E5vR/Q/QyK3Q==",
"version": "4.56.1",
"resolved": "https://registry.npmjs.org/@sasjs/core/-/core-4.56.1.tgz",
"integrity": "sha512-RI/DrQ+aluFsX2i+K6M66N+sUNnMLHpFKF5IDDYkgA8vLaiEXfJaqrNeNL2FhTRFRrdvv0bCspmeZEK8fYelhQ==",
"license": "MIT"
},
"node_modules/@sasjs/lint": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/@sasjs/lint/-/lint-2.3.1.tgz",
"integrity": "sha512-vvoMXAicuewxyiBmF9VkMziQsAA6+MSKMnmcmAfnbR5cvBVSDYDh6X7sAeWXyjNfWxuBweyP9nv6//FRiWaRMQ==",
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/@sasjs/lint/-/lint-2.4.3.tgz",
"integrity": "sha512-J0fYJmDfnhXDeMkZI8vHo8zjIsByIPcKHSQbiQEuRMXbNJXjqgTqoCpN0L6SlhyrrXUtMQvk/XErJ3OQGVEjrA==",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
"@sasjs/utils": "2.52.0",
"@sasjs/utils": "3.5.2",
"ignore": "5.2.4"
}
},
"node_modules/@sasjs/lint/node_modules/@sasjs/utils": {
"version": "2.52.0",
"resolved": "https://registry.npmjs.org/@sasjs/utils/-/utils-2.52.0.tgz",
"integrity": "sha512-UbmYCdfCvjRpmoKRnbmKEcE2YZJh9zHjjGyuZ5BIDxThDtOsGZUOiZrW1J7WcrzjAwQiRBzYoV7xF5MiZqtgiQ==",
"hasInstallScript": true,
"dependencies": {
"@types/fs-extra": "9.0.13",
"@types/prompts": "2.0.13",
"chalk": "4.1.1",
"cli-table": "0.3.6",
"consola": "2.15.0",
"csv-stringify": "5.6.5",
"find": "0.3.0",
"fs-extra": "10.0.0",
"jwt-decode": "3.1.2",
"prompts": "2.4.1",
"rimraf": "3.0.2",
"valid-url": "1.0.9"
}
},
"node_modules/@sasjs/lint/node_modules/chalk": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
"integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/@sasjs/utils": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/@sasjs/utils/-/utils-3.4.0.tgz",
"integrity": "sha512-KHkuOcbwKdD9HrgwKYrMPPuKoFzOAEyNpUjHHhyefxRlrpLwTaf08nYQXFBUhqbWuS+hPRqFLozx45x+xExgyQ==",
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/@sasjs/utils/-/utils-3.5.2.tgz",
"integrity": "sha512-LBpBDx0T7G/eO15Gb+r3DR1LfBnoqagWT3HiHabojFziA4ej4ePORo8chrk0zHLIzrjI2ljAnDabyJEwC5KtIA==",
"hasInstallScript": true,
"license": "ISC",
"dependencies": {
"@fast-csv/format": "4.3.5",
"@types/fs-extra": "9.0.13",
"@types/fs-extra": "11.0.4",
"@types/prompts": "2.0.13",
"chalk": "4.1.1",
"cli-table": "0.3.6",
"consola": "2.15.0",
"find": "0.3.0",
"fs-extra": "10.0.0",
"fs-extra": "11.3.0",
"jwt-decode": "3.1.2",
"prompts": "2.4.1",
"rimraf": "3.0.2",
"valid-url": "1.0.9"
}
},
@ -190,6 +117,7 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
"integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@ -210,9 +138,20 @@
}
},
"node_modules/@types/fs-extra": {
"version": "9.0.13",
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz",
"integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==",
"version": "11.0.4",
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz",
"integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==",
"license": "MIT",
"dependencies": {
"@types/jsonfile": "*",
"@types/node": "*"
}
},
"node_modules/@types/jsonfile": {
"version": "6.1.4",
"resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz",
"integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==",
"license": "MIT",
"dependencies": {
"@types/node": "*"
}
@ -220,23 +159,18 @@
"node_modules/@types/node": {
"version": "14.18.63",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz",
"integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ=="
"integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==",
"license": "MIT"
},
"node_modules/@types/prompts": {
"version": "2.0.13",
"resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.0.13.tgz",
"integrity": "sha512-jwMOIGy49VruR/gYehhJYgpVzB+EVpEE7t7j9m1oTo4HMpOe7KmsyqdBuoxAzA5B4caUgx0cKrWr7wUEqMXJ7Q==",
"license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/tough-cookie": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
"integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
"license": "MIT",
"peer": true
},
"node_modules/abab": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
@ -304,29 +238,33 @@
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/axios": {
"version": "0.27.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
"integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
"version": "1.8.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.2.tgz",
"integrity": "sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.14.9",
"form-data": "^4.0.0"
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/axios-cookiejar-support": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/axios-cookiejar-support/-/axios-cookiejar-support-1.0.1.tgz",
"integrity": "sha512-IZJxnAJ99XxiLqNeMOqrPbfR7fRyIfaoSLdPUf4AMQEGkH8URs0ghJK/xtqBsD+KsSr3pKl4DEQjCn834pHMig==",
"version": "5.0.5",
"resolved": "https://registry.npmjs.org/axios-cookiejar-support/-/axios-cookiejar-support-5.0.5.tgz",
"integrity": "sha512-jJG+p7JnOYxkVrYkCDKBrLqUmcpwHZTNQrEcIEKr5qe7YVTyPAD9nCsi1cO5LDmQpQApfS430czO+oceI3g/3g==",
"license": "MIT",
"dependencies": {
"is-redirect": "^1.0.0",
"pify": "^5.0.0"
"http-cookie-agent": "^6.0.8"
},
"engines": {
"node": ">= 10.0.0"
"node": ">=18.0.0"
},
"funding": {
"url": "https://github.com/sponsors/3846masa"
},
"peerDependencies": {
"@types/tough-cookie": ">=2.3.3",
"axios": ">=0.16.2",
"tough-cookie": ">=2.3.3"
"axios": ">=0.20.0",
"tough-cookie": ">=4.0.0"
}
},
"node_modules/balanced-match": {
@ -506,6 +444,7 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
"integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==",
"license": "MIT",
"engines": {
"node": ">=0.1.90"
}
@ -529,7 +468,8 @@
"node_modules/consola": {
"version": "2.15.0",
"resolved": "https://registry.npmjs.org/consola/-/consola-2.15.0.tgz",
"integrity": "sha512-vlcSGgdYS26mPf7qNi+dCisbhiyDnrN1zaRbw3CSuc2wGOMEGGPsp46PdRG5gqXwgtJfjxDkxRNAgRPr1B77vQ=="
"integrity": "sha512-vlcSGgdYS26mPf7qNi+dCisbhiyDnrN1zaRbw3CSuc2wGOMEGGPsp46PdRG5gqXwgtJfjxDkxRNAgRPr1B77vQ==",
"license": "MIT"
},
"node_modules/cssstyle": {
"version": "3.0.0",
@ -542,11 +482,6 @@
"node": ">=14"
}
},
"node_modules/csv-stringify": {
"version": "5.6.5",
"resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.5.tgz",
"integrity": "sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A=="
},
"node_modules/data-urls": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz",
@ -644,14 +579,6 @@
"node": ">=6"
}
},
"node_modules/esm": {
"version": "3.2.25",
"resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
"integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
"engines": {
"node": ">=6"
}
},
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
@ -661,20 +588,22 @@
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/find/-/find-0.3.0.tgz",
"integrity": "sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw==",
"license": "MIT",
"dependencies": {
"traverse-chain": "~0.1.0"
}
},
"node_modules/follow-redirects": {
"version": "1.15.6",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
"version": "1.15.9",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
"integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
"license": "MIT",
"engines": {
"node": ">=4.0"
},
@ -698,16 +627,17 @@
}
},
"node_modules/fs-extra": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
"integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
"version": "11.3.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
"integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
"node": ">=12"
"node": ">=14.14"
}
},
"node_modules/fs.realpath": {
@ -754,7 +684,8 @@
"node_modules/graceful-fs": {
"version": "4.2.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"license": "ISC"
},
"node_modules/has-flag": {
"version": "4.0.0",
@ -786,6 +717,39 @@
"node": ">=12"
}
},
"node_modules/http-cookie-agent": {
"version": "6.0.8",
"resolved": "https://registry.npmjs.org/http-cookie-agent/-/http-cookie-agent-6.0.8.tgz",
"integrity": "sha512-qnYh3yLSr2jBsTYkw11elq+T361uKAJaZ2dR4cfYZChw1dt9uL5t3zSUwehoqqVb4oldk1BpkXKm2oat8zV+oA==",
"license": "MIT",
"dependencies": {
"agent-base": "^7.1.3"
},
"engines": {
"node": ">=18.0.0"
},
"funding": {
"url": "https://github.com/sponsors/3846masa"
},
"peerDependencies": {
"tough-cookie": "^4.0.0 || ^5.0.0",
"undici": "^5.11.0 || ^6.0.0"
},
"peerDependenciesMeta": {
"undici": {
"optional": true
}
}
},
"node_modules/http-cookie-agent/node_modules/agent-base": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
"integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
"license": "MIT",
"engines": {
"node": ">= 14"
}
},
"node_modules/http-proxy-agent": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
@ -802,7 +766,8 @@
"node_modules/https": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz",
"integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg=="
"integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==",
"license": "ISC"
},
"node_modules/https-proxy-agent": {
"version": "5.0.1",
@ -850,6 +815,7 @@
"version": "5.2.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
"integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
"license": "MIT",
"engines": {
"node": ">= 4"
}
@ -923,14 +889,6 @@
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
"integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
},
"node_modules/is-redirect": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
"integrity": "sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-unicode-supported": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
@ -1003,6 +961,7 @@
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"license": "MIT",
"dependencies": {
"universalify": "^2.0.0"
},
@ -1013,7 +972,8 @@
"node_modules/jwt-decode": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz",
"integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="
"integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==",
"license": "MIT"
},
"node_modules/kind-of": {
"version": "6.0.3",
@ -1027,6 +987,7 @@
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
"license": "MIT",
"engines": {
"node": ">=6"
}
@ -1034,7 +995,8 @@
"node_modules/lodash.escaperegexp": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
"integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw=="
"integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==",
"license": "MIT"
},
"node_modules/lodash.groupby": {
"version": "4.6.0",
@ -1044,22 +1006,27 @@
"node_modules/lodash.isboolean": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
"integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
"integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
"license": "MIT"
},
"node_modules/lodash.isequal": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
"deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.",
"license": "MIT"
},
"node_modules/lodash.isfunction": {
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
"integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw=="
"integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==",
"license": "MIT"
},
"node_modules/lodash.isnil": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz",
"integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng=="
"integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==",
"license": "MIT"
},
"node_modules/lodash.uniqby": {
"version": "4.7.0",
@ -1125,15 +1092,16 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/nanoid": {
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"version": "3.3.10",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.10.tgz",
"integrity": "sha512-vSJJTG+t/dIKAUhUDw/dLdZ9s//5OxcHqLaDWWrW4Cdq7o6tdLIczUkMXt2MBNmk6sJRZBZRXVixs7URY1CmIg==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@ -1270,21 +1238,11 @@
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"node_modules/pify": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz",
"integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/prompts": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz",
"integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==",
"license": "MIT",
"dependencies": {
"kleur": "^3.0.3",
"sisteransi": "^1.0.5"
@ -1293,6 +1251,12 @@
"node": ">= 6"
}
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"license": "MIT"
},
"node_modules/psl": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
@ -1376,21 +1340,6 @@
"node": ">=8"
}
},
"node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"deprecated": "Rimraf versions prior to v4 are no longer supported",
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/rrweb-cssom": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz",
@ -1455,7 +1404,8 @@
"node_modules/sisteransi": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
"license": "MIT"
},
"node_modules/ssl-root-cas": {
"version": "1.3.1",
@ -1560,7 +1510,8 @@
"node_modules/traverse-chain": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/traverse-chain/-/traverse-chain-0.1.0.tgz",
"integrity": "sha512-up6Yvai4PYKhpNp5PkYtx50m3KbwQrqDwbuZP/ItyL64YEWHAvH6Md83LFLV/GRSk/BoUVwwgUzX6SOQSbsfAg=="
"integrity": "sha512-up6Yvai4PYKhpNp5PkYtx50m3KbwQrqDwbuZP/ItyL64YEWHAvH6Md83LFLV/GRSk/BoUVwwgUzX6SOQSbsfAg==",
"license": "MIT"
},
"node_modules/trim-buffer": {
"version": "5.0.0",
@ -1571,6 +1522,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
"integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"license": "MIT",
"engines": {
"node": ">= 10.0.0"
}
@ -1674,9 +1626,10 @@
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"node_modules/ws": {
"version": "8.17.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz",
"integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==",
"version": "8.18.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz",
"integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
},

View File

@ -28,7 +28,7 @@
},
"private": true,
"dependencies": {
"@sasjs/cli": "^4.11.1",
"@sasjs/core": "^4.53.0"
"@sasjs/cli": "^4.12.2",
"@sasjs/core": "^4.56.1"
}
}

View File

@ -96,6 +96,8 @@ data work.emails;
/* get email from metadata if not in input table */
if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;
putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";
end;
else do;
if metadata_getattr(emailuri,"Address",user_email)<0 then do;
putlog 'DCWARN: Unexpected error! Valid emailURI but no email. Weird.';
end;

View File

@ -249,26 +249,18 @@ data vars(keep=name type length varnum format);
end;
else do;
if format2='' then format=cats(length,'.');
else if format2=:'DATETIME' or format2=:'E8601DT' then do;
else if format2=:'DATETIME' or format2=:'E8601DT' or format2=:'NLDATM'
then do;
format='DATETIME19.';
end;
else if format2=:'DATE' or format2=:'DDMMYY'
or format2=:'MMDDYY' or format2=:'YYMMDD'
or format2=:'E8601DA' or format2=:'B8601DA'
or format2=:'NLDATE'
then do;
format='DATE9.';
end;
else if format2='BEST' & formatl=0 then format=cats('BEST',length,'.');
/*
else if format2=:'DATETIME' or format2=:'DATE' or format2=:'DDMMYY'
or format2=:'MMDDYY' or format2=:'YYMMDD' then do;
*date or datetime format so use original ;
dsid=open("&libref..&ds");
vnum=varnum(dsid,name);
format=varfmt(dsid,vnum);
dsid=close(dsid);
end;
*/
else do;
if formatl=0 then formatl=length;
format=cats(format2,formatl,'.',formatd);

View File

@ -38,6 +38,7 @@
dc_dttmtfmt /* can be overridden in dc_getsettings */
_debug /* automatic variable when provided in URL */
sasjs_mdebug /* used to show extra info when _debug is enabled */
sqlrc /* avoid errors when using DI jobs in HOOK scripts */
;
%if &mpeinit=1 %then %return;

View File

@ -340,7 +340,8 @@ select upcase(loadtype)
if ctrlOptions ne '' then
colType=cats(coltype,',"type":"dropdown","source":',ctrlOptions,"}");
else if type='num' then do;
if format=:'DATETIME' or format=:'E8601DT' then do;
if format=:'DATETIME' or format=:'E8601DT' or format=:'NLDATM'
then do;
colType=cats(coltype
,',"type":"date","dateFormat":"YYYY-MM-DD HH:mm:ss"'
,',"correctFormat":"true"}');
@ -349,7 +350,7 @@ select upcase(loadtype)
end;
else if format=:'DATE' or format=:'DDMMYY' or format=:'MMDDYY'
or format=:'YYMMDD' or format=:'E8601DA' or format=:'B8601DA'
or format=:'MONYY'
or format=:'MONYY' or format=:'NLDATE'
then do;
/* see bottom of file for more date formats!! */
/* also when updating, update stagedata.sas and mp_getcols.sas

View File

@ -23,10 +23,11 @@
%mm_getdetails(&objecturi
,outattrs=work.attributes
,outassocs=work.associations
,sortoptions=SORTSEQ=LINGUISTIC
)
%webout(OPEN)
%webout(OBJ,attributes)
%webout(OBJ,attributes, missing=STRING)
%webout(OBJ,associations)
%webout(CLOSE)
%mpeterm()