@sasjs/utils 3.7.0 → 3.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -4,6 +4,9 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
+ "engines": {
8
+ "node": ">=22"
9
+ },
7
10
  "release": {
8
11
  "branches": [
9
12
  "main"
@@ -30,6 +33,26 @@
30
33
  ]
31
34
  },
32
35
  "typings": "./index.d.ts",
36
+ "files": [
37
+ "index.js",
38
+ "index.js.map",
39
+ "*.d.ts",
40
+ "auth/**",
41
+ "compileTree/**",
42
+ "conversion/**",
43
+ "error/**",
44
+ "file/**",
45
+ "formatter/**",
46
+ "fs/**",
47
+ "input/**",
48
+ "logger/**",
49
+ "macros/**",
50
+ "sasjsCli/**",
51
+ "time/**",
52
+ "types/**",
53
+ "utils/**",
54
+ "README.md"
55
+ ],
33
56
  "scripts": {
34
57
  "nodeVersionMessage": "echo \u001b[33m make sure you are running node lts version \u001b[0m",
35
58
  "build": "npm run nodeVersionMessage && npx rimraf build && tsc && npm run copy:macros",
@@ -39,7 +62,6 @@
39
62
  "test": "jest --config=jest.config.js --coverage",
40
63
  "lint:fix": "npx prettier --write \"{src,test}/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\"",
41
64
  "lint": "npx prettier --check \"{src,test}/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}\"",
42
- "semantic-release": "semantic-release",
43
65
  "setup": "git config core.hooksPath ./.git-hooks"
44
66
  },
45
67
  "repository": {
@@ -54,13 +76,10 @@
54
76
  "homepage": "https://github.com/sasjs/utils#readme",
55
77
  "devDependencies": {
56
78
  "@sasjs/core": "5.3.0",
57
- "@semantic-release/exec": "6.0.3",
58
- "@semantic-release/git": "10.0.1",
59
79
  "@types/jest": "29.4.0",
60
80
  "babel-jest": "29.4.3",
61
81
  "jest": "29.4.3",
62
82
  "jest-extended": "3.2.4",
63
- "semantic-release": "25.0.9",
64
83
  "ts-jest": "29.4.14",
65
84
  "ts-node": "10.9.2",
66
85
  "typescript": "4.5.4",
@@ -76,5 +95,5 @@
76
95
  "jwt-decode": "4.0.0",
77
96
  "prompts": "2.4.2"
78
97
  },
79
- "version": "3.7.0"
98
+ "version": "3.7.2"
80
99
  }
package/types/target.js CHANGED
@@ -40,12 +40,9 @@ class Target {
40
40
  if (json.deployConfig) {
41
41
  this._deployConfig = (0, targetValidators_1.validateDeployConfig)(this.getConfig(config_1.ConfigTypes.Deploy, json));
42
42
  }
43
- else {
44
- this._deployConfig = (0, targetValidators_1.validateDeployConfig)({
45
- deployServicePack: true,
46
- deployScripts: []
47
- });
48
- }
43
+ // No else: a target that declares no deployConfig has none. Inserting a
44
+ // default here put `deployConfig` into every saved sasjsconfig - see
45
+ // sasjs/utils#221.
49
46
  if (json.serviceConfig) {
50
47
  this._serviceConfig = (0, targetValidators_1.validateServiceConfig)(this.getConfig(config_1.ConfigTypes.Service, json));
51
48
  }
@@ -153,7 +150,7 @@ class Target {
153
150
  get sasjsResultsFolder() {
154
151
  return this._sasjsResultsFolder;
155
152
  }
156
- toJson(withDefaults = true) {
153
+ toJson(withDefaults = false) {
157
154
  var _a, _b, _c;
158
155
  const json = {
159
156
  name: this.name,
@@ -1 +1 @@
1
- {"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/types/target.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/types/target.ts"],"names":[],"mappings":"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"}
package/utils/base64.js CHANGED
@@ -1,14 +1,18 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.decodeFromBase64 = exports.encodeToBase64 = void 0;
7
- const crypto_1 = __importDefault(require("crypto"));
8
4
  const PREFIX = '{sasjs_encoded}';
5
+ const PREFIX_HEX_LENGTH = 200;
6
+ // The prefix is obfuscation, not encryption: decodeFromBase64 strips it by fixed
7
+ // offset (substring(200)), so its only jobs are to make an encoded value unique
8
+ // and to stop it reading as base64 of a password. The Web Crypto global is used
9
+ // directly rather than Node's `crypto` module, so webpack has nothing to alias
10
+ // to crypto-browserify and the browser bundle carries no crypto shim.
11
+ const randomHexPrefix = () => Array.from(crypto.getRandomValues(new Uint8Array(PREFIX_HEX_LENGTH / 2)))
12
+ .map((byte) => byte.toString(16).padStart(2, '0'))
13
+ .join('');
9
14
  const encodeToBase64 = (str) => {
10
- const randomString = crypto_1.default.randomBytes(100).toString('hex');
11
- const encodedPassword = Buffer.from(randomString + str).toString('base64');
15
+ const encodedPassword = Buffer.from(randomHexPrefix() + str).toString('base64');
12
16
  return PREFIX + encodedPassword;
13
17
  };
14
18
  exports.encodeToBase64 = encodeToBase64;
@@ -1 +1 @@
1
- {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/utils/base64.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAC3B,MAAM,MAAM,GAAG,iBAAiB,CAAA;AACzB,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;IAC5C,MAAM,YAAY,GAAG,gBAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC5D,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC1E,OAAO,MAAM,GAAG,eAAe,CAAA;AACjC,CAAC,CAAA;AAJY,QAAA,cAAc,kBAI1B;AACM,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE;IAC9C,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC1B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;QACzC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC7D,OAAO,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;KACtC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAPY,QAAA,gBAAgB,oBAO5B"}
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/utils/base64.ts"],"names":[],"mappings":";;;AAAA,MAAM,MAAM,GAAG,iBAAiB,CAAA;AAChC,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B,iFAAiF;AACjF,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,sEAAsE;AACtE,MAAM,eAAe,GAAG,GAAW,EAAE,CACnC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC;KACtE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;KACjD,IAAI,CAAC,EAAE,CAAC,CAAA;AAEN,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;IAC5C,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,CACnE,QAAQ,CACT,CAAA;IACD,OAAO,MAAM,GAAG,eAAe,CAAA;AACjC,CAAC,CAAA;AALY,QAAA,cAAc,kBAK1B;AACM,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE;IAC9C,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC1B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;QACzC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC7D,OAAO,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;KACtC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAPY,QAAA,gBAAgB,oBAO5B"}
@@ -1,114 +0,0 @@
1
- {
2
- "files": [
3
- "README.md"
4
- ],
5
- "imageSize": 100,
6
- "commit": false,
7
- "contributors": [
8
- {
9
- "login": "saadjutt01",
10
- "name": "Muhammad Saad ",
11
- "avatar_url": "https://avatars.githubusercontent.com/u/8914650?v=4",
12
- "profile": "https://github.com/saadjutt01",
13
- "contributions": [
14
- "code",
15
- "test",
16
- "review",
17
- "mentoring",
18
- "doc"
19
- ]
20
- },
21
- {
22
- "login": "YuryShkoda",
23
- "name": "Yury Shkoda",
24
- "avatar_url": "https://avatars.githubusercontent.com/u/25773492?v=4",
25
- "profile": "https://www.erudicat.com",
26
- "contributions": [
27
- "code",
28
- "projectManagement",
29
- "test",
30
- "video",
31
- "doc"
32
- ]
33
- },
34
- {
35
- "login": "krishna-acondy",
36
- "name": "Krishna Acondy",
37
- "avatar_url": "https://avatars.githubusercontent.com/u/2980428?v=4",
38
- "profile": "https://krishna-acondy.io/",
39
- "contributions": [
40
- "code",
41
- "test",
42
- "infra",
43
- "content",
44
- "maintenance",
45
- "platform",
46
- "review"
47
- ]
48
- },
49
- {
50
- "login": "medjedovicm",
51
- "name": "Mihajlo Medjedovic",
52
- "avatar_url": "https://avatars.githubusercontent.com/u/18329105?v=4",
53
- "profile": "https://github.com/medjedovicm",
54
- "contributions": [
55
- "code",
56
- "infra",
57
- "test",
58
- "review"
59
- ]
60
- },
61
- {
62
- "login": "allanbowe",
63
- "name": "Allan Bowe",
64
- "avatar_url": "https://avatars.githubusercontent.com/u/4420615?v=4",
65
- "profile": "https://github.com/allanbowe",
66
- "contributions": [
67
- "code",
68
- "review",
69
- "test",
70
- "video",
71
- "doc"
72
- ]
73
- },
74
- {
75
- "login": "sabhas",
76
- "name": "Sabir Hassan",
77
- "avatar_url": "https://avatars.githubusercontent.com/u/82647447?v=4",
78
- "profile": "https://github.com/sabhas",
79
- "contributions": [
80
- "code",
81
- "review",
82
- "test",
83
- "ideas"
84
- ]
85
- },
86
- {
87
- "login": "VladislavParhomchik",
88
- "name": "VladislavParhomchik",
89
- "avatar_url": "https://avatars.githubusercontent.com/u/83717836?v=4",
90
- "profile": "https://github.com/VladislavParhomchik",
91
- "contributions": [
92
- "test",
93
- "review"
94
- ]
95
- },
96
- {
97
- "login": "glM26",
98
- "name": "glM26",
99
- "avatar_url": "https://avatars.githubusercontent.com/u/35031631?v=4",
100
- "profile": "https://github.com/glM26",
101
- "contributions": [
102
- "code"
103
- ]
104
- }
105
- ],
106
- "contributorsPerLine": 7,
107
- "projectName": "utils",
108
- "projectOwner": "sasjs",
109
- "repoType": "github",
110
- "repoHost": "https://github.com",
111
- "skipCi": true,
112
- "commitType": "docs",
113
- "commitConvention": "angular"
114
- }
@@ -1,18 +0,0 @@
1
- #!/bin/sh
2
- RED="\033[1;31m"
3
- GREEN="\033[1;32m"
4
-
5
- # Get the commit message (the parameter we're given is just the path to the
6
- # temporary file which holds the message).
7
- commit_message=$(cat "$1")
8
-
9
- if (echo "$commit_message" | grep -Eq "^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\([a-z0-9 \-]+\))?!?: .+$") then
10
- echo "${GREEN} ✔ Commit message meets Conventional Commit standards"
11
- exit 0
12
- fi
13
-
14
- echo "${RED}❌ Commit message does not meet the Conventional Commit standard!"
15
- echo "An example of a valid message is:"
16
- echo " feat(login): add the 'remember me' button"
17
- echo "ℹ More details at: https://www.conventionalcommits.org/en/v1.0.0/#summary"
18
- exit 1
@@ -1,27 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Scan staged changes for secrets before anything else runs.
4
- # The binary is pinned by the @nogoo9/gitleaks devDependency and lands
5
- # in node_modules/.bin after npm i. Commits are blocked until it is
6
- # installed so no clone silently skips the secrets scan.
7
- gitleaks_bin=node_modules/.bin/gitleaks
8
-
9
- if [ ! -x "$gitleaks_bin" ]; then
10
- echo "❌ gitleaks not found - run 'npm i' to install it"
11
- exit 1
12
- fi
13
-
14
- if ! "$gitleaks_bin" protect --staged --redact; then
15
- echo "❌ gitleaks detected a potential secret in your staged changes"
16
- echo "Remove the secret, or add a .gitleaksignore entry if it is a false positive"
17
- exit 1
18
- fi
19
-
20
- # Avoid commits to the main branch
21
- BRANCH=`git rev-parse --abbrev-ref HEAD`
22
-
23
- if [[ "$BRANCH" =~ ^(master|main|develop)$ ]]; then
24
- echo "You are on branch $BRANCH. Are you sure you want to commit to this branch?"
25
- echo "If so, commit with -n to bypass the pre-commit hook."
26
- exit 1
27
- fi
package/.gitattributes DELETED
@@ -1 +0,0 @@
1
- * text=auto eol=lf
@@ -1,46 +0,0 @@
1
- name: Dependency Staleness
2
-
3
- # Dependabot is not enabled on this repo, so nothing surfaces stale
4
- # dependencies. The audit gate in the test workflow only fails on
5
- # known-vulnerable packages; it says nothing about being behind. This runs
6
- # weekly and writes the outdated direct dependencies to the run summary.
7
- #
8
- # It deliberately exits 0 either way. A scheduled job that goes red every week
9
- # trains people to ignore red; the summary is the signal, and a human decides
10
- # whether to bump.
11
-
12
- on:
13
- schedule:
14
- - cron: '0 8 * * 1' # Mondays, 08:00 UTC
15
- workflow_dispatch:
16
-
17
- jobs:
18
- report:
19
- runs-on: ubuntu-latest
20
- permissions:
21
- contents: read
22
-
23
- steps:
24
- - uses: actions/checkout@v4
25
-
26
- - name: Use Node.js
27
- uses: actions/setup-node@v4
28
- with:
29
- node-version: 22
30
-
31
- - name: Install Dependencies
32
- run: npm ci
33
-
34
- - name: Report outdated direct dependencies
35
- run: |
36
- {
37
- echo '## Outdated direct dependencies'
38
- echo
39
- echo 'Direct dependencies whose latest published version differs from'
40
- echo 'the pinned one. Dependabot is disabled on this repo, so this is'
41
- echo 'the substitute - review it and bump deliberately.'
42
- echo
43
- echo '```'
44
- npm outdated --depth=0 || true
45
- echo '```'
46
- } >> "$GITHUB_STEP_SUMMARY"
@@ -1,98 +0,0 @@
1
- # This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
2
- # For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
3
-
4
- name: SASjs Build and Publish
5
-
6
- on:
7
- push:
8
- branches:
9
- - main
10
-
11
- jobs:
12
- build:
13
- runs-on: ubuntu-latest
14
- permissions:
15
- contents: write
16
- id-token: write # required for npm provenance (trusted publisher)
17
- issues: write # optional: lets @semantic-release/github comment on issues
18
- pull-requests: write # optional: lets @semantic-release/github comment on PRs
19
-
20
- strategy:
21
- matrix:
22
- node-version: [22]
23
-
24
- steps:
25
- # Mint a short-lived GitHub App token (bypass-capable)
26
- - name: Generate token
27
- id: app-token
28
- uses: actions/create-github-app-token@v1
29
- with:
30
- app-id: ${{ secrets.APP_ID }}
31
- private-key: ${{ secrets.APP_PRIVATE_KEY }}
32
-
33
- # Checkout using the app token so the release commit can be pushed
34
- - uses: actions/checkout@v4
35
- with:
36
- token: ${{ steps.app-token.outputs.token }}
37
- persist-credentials: true
38
- fetch-depth: 0 # semantic-release needs full history + tags
39
-
40
- - name: Use Node.js ${{ matrix.node-version }}
41
- uses: actions/setup-node@v4
42
- with:
43
- node-version: ${{ matrix.node-version }}
44
- registry-url: https://registry.npmjs.org
45
-
46
- # Node 22 ships npm 10.x — OIDC trusted publishing needs npm >= 11.5.1
47
- - name: Update npm
48
- run: npm install -g npm@latest
49
-
50
- # Restore npm cache manually
51
- - name: Restore npm cache
52
- uses: actions/cache@v4
53
- id: npm-cache
54
- with:
55
- path: ~/.npm
56
- key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
57
- restore-keys: |
58
- ${{ runner.os }}-node-
59
-
60
- - name: Install Dependencies
61
- run: npm ci
62
-
63
- - name: Check code style
64
- run: npm run lint
65
-
66
- - name: Build Project
67
- run: npm run build
68
-
69
- - name: Clean up ready for publishing
70
- run: npm run publishInit
71
-
72
- - name: Semantic Release
73
- run: npx semantic-release
74
- env:
75
- GITHUB_TOKEN: ${{ steps.app-token.outputs.token }} # <-- app token, not secrets.GITHUB_TOKEN
76
-
77
- # semantic-release only releases when it finds a releasable commit, and the
78
- # angular convention this repo is configured with does not treat `chore:` or
79
- # `docs:` as one. This step ran on `if: success()` regardless, so a merge with
80
- # no releasable commit published the version already in package.json, which
81
- # npm rejects with "You cannot publish over the previously published
82
- # versions". Compare against the registry instead, and publish only when
83
- # there is something new.
84
- - name: Publish to npm with trusted publisher
85
- id: publish
86
- if: success()
87
- run: |
88
- local_version=$(node -p "require('./package.json').version")
89
- published_version=$(npm view @sasjs/utils version 2>/dev/null || echo "")
90
-
91
- if [ "$local_version" = "$published_version" ]; then
92
- echo "released=false" >> "$GITHUB_OUTPUT"
93
- echo "Nothing to publish - $local_version is already on npm"
94
- exit 0
95
- fi
96
-
97
- npm publish --access public
98
- echo "released=true" >> "$GITHUB_OUTPUT"
@@ -1,39 +0,0 @@
1
- # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
2
- # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
3
-
4
- name: SASjs Utils Run Tests on Windows
5
-
6
- on:
7
- pull_request:
8
- push:
9
- branches:
10
- - main
11
-
12
- jobs:
13
- test:
14
- runs-on: windows-latest
15
-
16
- strategy:
17
- matrix:
18
- node-version: [22]
19
-
20
- steps:
21
- - uses: actions/checkout@v4
22
- - name: Use Node.js ${{ matrix.node-version }}
23
- uses: actions/setup-node@v4
24
- with:
25
- node-version: ${{ matrix.node-version }}
26
-
27
- - name: Install Dependencies
28
- run: npm ci
29
-
30
- - name: Check Code Style
31
- run: npm run lint
32
-
33
- - name: Run Unit Tests
34
- run: npm test
35
-
36
- - name: Build Package
37
- run: npm run package:lib
38
- env:
39
- CI: true
@@ -1,45 +0,0 @@
1
- # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
2
- # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
3
-
4
- name: SASjs Utils Run Tests
5
-
6
- on:
7
- pull_request:
8
- # Also run on main. Until this was added the workflow only ran on pull
9
- # requests, so a failure that started on 19 Aug went unnoticed for six weeks -
10
- # every PR was red and no branch was green, with nothing to compare against.
11
- push:
12
- branches:
13
- - main
14
-
15
- jobs:
16
- test:
17
- runs-on: ubuntu-latest
18
-
19
- strategy:
20
- matrix:
21
- node-version: [22]
22
-
23
- steps:
24
- - uses: actions/checkout@v4
25
- - name: Use Node.js ${{ matrix.node-version }}
26
- uses: actions/setup-node@v4
27
- with:
28
- node-version: ${{ matrix.node-version }}
29
-
30
- - name: Check npm audit
31
- run: npm audit --production --audit-level=low
32
-
33
- - name: Install Dependencies
34
- run: npm ci
35
-
36
- - name: Check Code Style
37
- run: npm run lint
38
-
39
- - name: Run Unit Tests
40
- run: npm test
41
-
42
- - name: Build Package
43
- run: npm run package:lib
44
- env:
45
- CI: true
@@ -1,24 +0,0 @@
1
- # Hooks for the pre-commit framework - https://pre-commit.com
2
- #
3
- # The repo also ships native hooks in .git-hooks/: gitleaks on the staged
4
- # content before the commit, and the Conventional Commits check on the message.
5
- # `npm run setup` activates them by setting core.hooksPath - but .npmrc sets
6
- # ignore-scripts=true, so no install step runs it, and a fresh clone commits
7
- # unchecked until someone runs it by hand.
8
- #
9
- # This file is the standard route instead: install the framework once with
10
- # `pre-commit install`, and both hooks run on every commit. gitleaks is pinned
11
- # to an exact release tag, and the message hook calls the script the native
12
- # hooks already use, so there is one implementation of the rules.
13
- repos:
14
- - repo: https://github.com/gitleaks/gitleaks
15
- rev: v8.30.1
16
- hooks:
17
- - id: gitleaks
18
- - repo: local
19
- hooks:
20
- - id: commit-msg
21
- name: conventional commit
22
- entry: .git-hooks/commit-msg
23
- language: script
24
- stages: [commit-msg]
package/.prettierrc DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "trailingComma": "none",
3
- "tabWidth": 2,
4
- "semi": false,
5
- "singleQuote": true,
6
- "endOfLine": "auto"
7
- }
@@ -1,6 +0,0 @@
1
- {
2
- "recommendations": [
3
- "sasjs.sasjs-for-vscode",
4
- "esbenp.prettier-vscode"
5
- ]
6
- }
package/CONTRIBUTING.md DELETED
@@ -1,23 +0,0 @@
1
- # Contributing to @sasjs/utils
2
-
3
- ## Developer Setup
4
-
5
- To get started, clone the repo and install dependencies with `npm install`.
6
-
7
- We use Prettier to maintain uniform code style. If you use VSCode, you can install the Prettier extension and enable automatic formatting of your code on save using the following settings in your configuration.
8
-
9
- ```
10
- "editor.formatOnPaste": true,
11
- "editor.formatOnSave": true
12
- ```
13
-
14
- Alternately, you can run the `lint:fix` NPM script to format your code.
15
-
16
- You can run the unit tests using the `test` script.
17
-
18
- Unit tests and correctly formatted code are expected in each pull request, and are enforced by our CI checks.
19
-
20
- # Local testing
21
-
22
- You can create a tarball from your local code using the `package:lib` command.
23
- The created tarball can then be installed in other projects for testing using `npm install <path-to-file>`.
@@ -1,22 +0,0 @@
1
- ## Issue
2
-
3
- Link any related issue(s) in this section.
4
-
5
- ## Intent
6
-
7
- What this PR intends to achieve.
8
-
9
- ## Implementation
10
-
11
- What code changes have been made to achieve the intent.
12
-
13
- ## Checks
14
-
15
- - [ ] Code is formatted correctly (`npm run lint:fix`).
16
- - [ ] All unit tests are passing (`npm test`).
17
- - [ ] All `sasjs-cli` unit tests are passing (`npm test`).
18
- - [ ] Reviewer is assigned.
19
-
20
- ### Reviewer checks
21
-
22
- - [ ] Any new code is documented.
@@ -1,16 +0,0 @@
1
- const result = process.versions
2
- if (result && result.node) {
3
- if (parseInt(result.node) < 20) {
4
- console.log(
5
- '\x1b[31m%s\x1b[0m',
6
- `❌ Process failed due to Node Version,\nPlease install and use Node Version >= 20\nYour current Node Version is: ${result.node}`
7
- )
8
- process.exit(1)
9
- }
10
- } else {
11
- console.log(
12
- '\x1b[31m%s\x1b[0m',
13
- 'Something went wrong while checking Node version'
14
- )
15
- process.exit(1)
16
- }
@@ -1,36 +0,0 @@
1
- import path from 'path'
2
- import { asyncForEach, copy, createFolder, deleteFolder } from '../src'
3
-
4
- const root = path.join(__dirname, '..')
5
-
6
- const sasjsCorePath = path.join(root, 'node_modules', '@sasjs', 'core')
7
-
8
- export const macrosPath = path.join(root, 'build', 'macros')
9
-
10
- /**
11
- * We need @sasjs/core macros at runtime for compilation of programs, but we
12
- * can't directly import them like a javascript file.
13
- * So, we have to read the macro files directly. For this we can't use the
14
- * node_modules folder, as it will not always be available after the library is
15
- * built / packed (eg in the VS Code extension)
16
- * Therefore, we copy the macros to a folder in the post build step, so that we
17
- * can read them at runtime.
18
- *
19
- * These macros are / will be used by the sasjs fs command / fs sync utilites
20
- * as well as for general compilation of SAS Jobs, Services, and Tests.
21
- */
22
-
23
- export const copySASjsCore = async () => {
24
- await deleteFolder(macrosPath)
25
- await createFolder(macrosPath)
26
-
27
- const foldersToCopy = ['base']
28
-
29
- await asyncForEach(foldersToCopy, async (coreSubFolder) => {
30
- const coreSubFolderPath = path.join(sasjsCorePath, coreSubFolder)
31
-
32
- await copy(coreSubFolderPath, macrosPath)
33
- })
34
- }
35
-
36
- copySASjsCore()
package/updateCli DELETED
@@ -1,3 +0,0 @@
1
- npm run package:lib
2
- cd ../cli
3
- npm install ../utils/build/sasjs-utils-5.0.0.tgz
package/updateServer DELETED
@@ -1,3 +0,0 @@
1
- npm run package:lib
2
- cd ../server/api
3
- npm install ../../utils/build/sasjs-utils-5.0.0.tgz