@notur/sdk 1.0.0 → 1.1.3

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/README.md ADDED
@@ -0,0 +1,144 @@
1
+ # @notur/sdk
2
+
3
+ Notur Extension Developer SDK. This package provides the runtime helpers and React hooks needed to register Notur extensions, define UI slots and routes, and interact with the Notur bridge at runtime.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @notur/sdk
9
+ ```
10
+
11
+ ```bash
12
+ bun add @notur/sdk
13
+ ```
14
+
15
+ Peer dependencies:
16
+ - `react` `^16.14.0`
17
+ - `react-dom` `^16.14.0`
18
+
19
+ ## Quick Start
20
+
21
+ ```ts
22
+ import { createExtension } from '@notur/sdk';
23
+ import AnalyticsWidget from './components/AnalyticsWidget';
24
+ import AnalyticsPage from './pages/AnalyticsPage';
25
+
26
+ createExtension({
27
+ config: { id: 'acme/analytics', name: 'Analytics', version: '1.0.0' },
28
+ slots: [
29
+ { slot: 'dashboard.widgets', component: AnalyticsWidget, order: 10 },
30
+ ],
31
+ routes: [
32
+ { area: 'server', path: '/analytics', name: 'Analytics', component: AnalyticsPage },
33
+ ],
34
+ });
35
+ ```
36
+
37
+ Notes:
38
+ - The Notur bridge must be loaded before your bundle. The SDK reads the bridge from `window.__NOTUR__`.
39
+ - Extension IDs should be stable and unique (e.g., `vendor/name`).
40
+
41
+ ## API
42
+
43
+ ### `createExtension(definition)`
44
+
45
+ Registers the extension with Notur, wires routes and slots, and runs optional lifecycle hooks.
46
+
47
+ Definition fields:
48
+ - `config`: `{ id, name, version }`
49
+ - `slots`: UI slot registrations (`slot`, `component`, `order`, `when`, etc.)
50
+ - `routes`: Panel routes (`area`, `path`, `name`, `component`, `permission`, etc.)
51
+ - `cssIsolation`: `true` or `{ mode: 'root-class', className?: string }`
52
+ - `onInit`: Called after registration.
53
+ - `onDestroy`: Called when the extension is unloaded.
54
+
55
+ ### Hooks
56
+
57
+ All hooks are exported from `@notur/sdk`.
58
+
59
+ - `useServerContext()`: Returns server context or `null` when not on a server page.
60
+ - `useUserContext()`: Returns user info or `null` while loading.
61
+ - `usePermission(permission)`: Checks for a specific extension permission.
62
+ - `useExtensionConfig(extensionId, options)`: Loads public settings for the extension.
63
+ - `options`: `{ baseUrl?, initial?, pollInterval? }`
64
+ - `useNoturEvent(event, handler)`: Subscribe to inter-extension events.
65
+ - `useEmitEvent()`: Returns a function to emit inter-extension events.
66
+ - `useNavigate({ extensionId })`: Navigate inside your extension namespace.
67
+
68
+ ## Packaging Your Extension
69
+
70
+ The SDK includes a CLI tool to package your extension into a `.notur` archive that can be uploaded to the Pterodactyl admin panel.
71
+
72
+ ```bash
73
+ # From your extension directory
74
+ npx notur-pack
75
+
76
+ # Or with bun
77
+ bunx notur-pack
78
+
79
+ # Specify a different path
80
+ npx notur-pack /path/to/my-extension
81
+
82
+ # Custom output filename
83
+ npx notur-pack --output my-extension.notur
84
+ ```
85
+
86
+ This creates a `.notur` file (tar.gz archive) containing:
87
+ - All extension files (excluding `node_modules`, `.git`, `vendor`, `.idea`, `.vscode`)
88
+ - A `checksums.json` with SHA-256 hashes for integrity verification
89
+
90
+ Upload the resulting `.notur` file to your Pterodactyl admin panel at `/admin/notur/extensions`.
91
+
92
+ ## Signing Extensions
93
+
94
+ The SDK provides tools for Ed25519 signing of extension archives, compatible with the PHP `notur:keygen` and `notur:export --sign` commands.
95
+
96
+ ### Generating a Keypair
97
+
98
+ ```bash
99
+ npx notur-keygen
100
+ ```
101
+
102
+ This generates a new Ed25519 keypair and outputs:
103
+ - **Public Key** (64 hex characters) -- Share with panel administrators
104
+ - **Secret Key** (128 hex characters) -- Keep private, used for signing
105
+
106
+ ### Signing an Archive
107
+
108
+ ```bash
109
+ # Using environment variable
110
+ NOTUR_SECRET_KEY=your_secret_key npx notur-pack --sign
111
+
112
+ # Or with --secret-key flag
113
+ npx notur-pack --sign --secret-key your_secret_key
114
+ ```
115
+
116
+ This produces three files:
117
+ - `vendor-name-1.0.0.notur` -- The extension archive
118
+ - `vendor-name-1.0.0.notur.sha256` -- SHA-256 checksum
119
+ - `vendor-name-1.0.0.notur.sig` -- Ed25519 signature (hex-encoded)
120
+
121
+ The `.sig` file format is compatible with PHP's `SignatureVerifier::verify()` and panels with `require_signatures` enabled.
122
+
123
+ ## Build
124
+
125
+ ```bash
126
+ bun run build
127
+ ```
128
+
129
+ ```bash
130
+ npm run build
131
+ ```
132
+
133
+ Outputs are written to `dist/`.
134
+
135
+ ## Templates
136
+
137
+ The SDK package ships a few templates in `templates/`:
138
+ - `extension.yaml.template` for extension manifests
139
+ - `ServiceProvider.php.template` for backend registration
140
+ - `ExampleComponent.tsx.template` for a starter UI component
141
+
142
+ ## License
143
+
144
+ MIT
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * notur-keygen - Generate Ed25519 keypair for signing Notur extensions
5
+ *
6
+ * Usage:
7
+ * npx notur-keygen
8
+ * bunx notur-keygen
9
+ *
10
+ * Generates a new Ed25519 keypair and outputs both keys in hex format.
11
+ * The output format matches the PHP `php artisan notur:keygen` command.
12
+ */
13
+
14
+ const sodium = require('libsodium-wrappers');
15
+
16
+ async function main() {
17
+ await sodium.ready;
18
+
19
+ const keypair = sodium.crypto_sign_keypair();
20
+
21
+ const publicKeyHex = sodium.to_hex(keypair.publicKey);
22
+ const secretKeyHex = sodium.to_hex(keypair.privateKey);
23
+
24
+ console.log('Ed25519 keypair generated successfully.');
25
+ console.log('');
26
+ console.log('Public Key:');
27
+ console.log(publicKeyHex);
28
+ console.log('');
29
+ console.log('Secret Key:');
30
+ console.log(secretKeyHex);
31
+ console.log('');
32
+ console.log('Store the secret key securely. It is used to sign extension archives.');
33
+ console.log('Add the public key to your panel configuration:');
34
+ console.log('');
35
+ console.log(` NOTUR_PUBLIC_KEY=${publicKeyHex}`);
36
+ console.log('');
37
+ console.log('To sign an archive, set the secret key as an environment variable:');
38
+ console.log('');
39
+ console.log(` NOTUR_SECRET_KEY=${secretKeyHex}`);
40
+ console.log(' npx notur-pack --sign');
41
+ }
42
+
43
+ main().catch(err => {
44
+ console.error('Error:', err.message);
45
+ process.exit(1);
46
+ });
@@ -0,0 +1,248 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * notur-pack - Package a Notur extension into a .notur archive
5
+ *
6
+ * Usage:
7
+ * npx notur-pack [path] # Pack extension at path (default: current dir)
8
+ * npx notur-pack --output foo.notur
9
+ * npx notur-pack --sign # Sign using NOTUR_SECRET_KEY env var
10
+ * npx notur-pack --sign --secret-key xxx
11
+ * bunx notur-pack
12
+ *
13
+ * A .notur file is a tar.gz archive containing:
14
+ * - All extension files (excluding node_modules, .git, vendor, .idea, .vscode)
15
+ * - A checksums.json with SHA-256 hashes of all included files
16
+ */
17
+
18
+ const fs = require('fs');
19
+ const path = require('path');
20
+ const crypto = require('crypto');
21
+ const { execSync } = require('child_process');
22
+ const yaml = require('yaml');
23
+
24
+ const EXCLUDE_PATTERNS = [
25
+ 'node_modules',
26
+ '.git',
27
+ 'vendor',
28
+ '.idea',
29
+ '.vscode',
30
+ '.DS_Store',
31
+ 'checksums.json',
32
+ ];
33
+
34
+ function parseArgs() {
35
+ const args = process.argv.slice(2);
36
+ const options = {
37
+ path: '.',
38
+ output: null,
39
+ sign: false,
40
+ secretKey: null,
41
+ };
42
+
43
+ for (let i = 0; i < args.length; i++) {
44
+ if (args[i] === '--output' || args[i] === '-o') {
45
+ options.output = args[++i];
46
+ } else if (args[i] === '--sign' || args[i] === '-s') {
47
+ options.sign = true;
48
+ } else if (args[i] === '--secret-key') {
49
+ options.secretKey = args[++i];
50
+ } else if (!args[i].startsWith('-')) {
51
+ options.path = args[i];
52
+ }
53
+ }
54
+
55
+ return options;
56
+ }
57
+
58
+ function loadManifest(dir) {
59
+ const manifestPath = path.join(dir, 'extension.yaml');
60
+ if (!fs.existsSync(manifestPath)) {
61
+ console.error('Error: extension.yaml not found in', dir);
62
+ process.exit(1);
63
+ }
64
+
65
+ const content = fs.readFileSync(manifestPath, 'utf8');
66
+
67
+ // Try to parse YAML, fall back to simple regex if yaml package not available
68
+ try {
69
+ const parsed = yaml.parse(content);
70
+ return {
71
+ id: parsed.id,
72
+ version: parsed.version,
73
+ name: parsed.name,
74
+ };
75
+ } catch {
76
+ // Fallback: simple regex parsing
77
+ const idMatch = content.match(/^id:\s*["']?([^"'\n]+)["']?/m);
78
+ const versionMatch = content.match(/^version:\s*["']?([^"'\n]+)["']?/m);
79
+ const nameMatch = content.match(/^name:\s*["']?([^"'\n]+)["']?/m);
80
+
81
+ return {
82
+ id: idMatch ? idMatch[1].trim() : null,
83
+ version: versionMatch ? versionMatch[1].trim() : null,
84
+ name: nameMatch ? nameMatch[1].trim() : null,
85
+ };
86
+ }
87
+ }
88
+
89
+ function shouldExclude(relativePath) {
90
+ for (const pattern of EXCLUDE_PATTERNS) {
91
+ if (relativePath === pattern || relativePath.startsWith(pattern + '/') || relativePath.startsWith(pattern + path.sep)) {
92
+ return true;
93
+ }
94
+ }
95
+ return false;
96
+ }
97
+
98
+ function collectFiles(dir, baseDir = dir) {
99
+ const files = [];
100
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
101
+
102
+ for (const entry of entries) {
103
+ const fullPath = path.join(dir, entry.name);
104
+ const relativePath = path.relative(baseDir, fullPath);
105
+
106
+ if (shouldExclude(relativePath)) {
107
+ continue;
108
+ }
109
+
110
+ if (entry.isDirectory()) {
111
+ files.push(...collectFiles(fullPath, baseDir));
112
+ } else if (entry.isFile()) {
113
+ files.push(relativePath);
114
+ }
115
+ }
116
+
117
+ return files.sort();
118
+ }
119
+
120
+ function computeChecksum(filePath) {
121
+ const content = fs.readFileSync(filePath);
122
+ return crypto.createHash('sha256').update(content).digest('hex');
123
+ }
124
+
125
+ function computeChecksums(dir, files) {
126
+ const checksums = {};
127
+ for (const file of files) {
128
+ const fullPath = path.join(dir, file);
129
+ checksums[file] = computeChecksum(fullPath);
130
+ }
131
+ return checksums;
132
+ }
133
+
134
+ async function signArchive(archivePath, secretKeyHex) {
135
+ const sodium = require('libsodium-wrappers');
136
+ await sodium.ready;
137
+
138
+ const content = fs.readFileSync(archivePath);
139
+ const secretKey = sodium.from_hex(secretKeyHex);
140
+ const signature = sodium.crypto_sign_detached(content, secretKey);
141
+
142
+ return sodium.to_hex(signature);
143
+ }
144
+
145
+ function getSecretKey(options) {
146
+ // Check --secret-key argument first, then environment variable
147
+ const secretKey = options.secretKey || process.env.NOTUR_SECRET_KEY;
148
+
149
+ if (!secretKey) {
150
+ console.error('Error: --sign requires a secret key.');
151
+ console.error('');
152
+ console.error('Provide it via:');
153
+ console.error(' NOTUR_SECRET_KEY=xxx npx notur-pack --sign');
154
+ console.error(' npx notur-pack --sign --secret-key xxx');
155
+ console.error('');
156
+ console.error('Generate a keypair with: npx notur-keygen');
157
+ process.exit(1);
158
+ }
159
+
160
+ // Validate format: Ed25519 secret keys are 64 bytes = 128 hex chars
161
+ if (!/^[0-9a-fA-F]{128}$/.test(secretKey)) {
162
+ console.error('Error: Invalid secret key format.');
163
+ console.error('Expected 128 hexadecimal characters (64 bytes).');
164
+ console.error('');
165
+ console.error('Generate a valid keypair with: npx notur-keygen');
166
+ process.exit(1);
167
+ }
168
+
169
+ return secretKey;
170
+ }
171
+
172
+ async function pack(sourceDir, outputPath, options = {}) {
173
+ const resolvedDir = path.resolve(sourceDir);
174
+
175
+ if (!fs.existsSync(resolvedDir)) {
176
+ console.error('Error: Directory does not exist:', resolvedDir);
177
+ process.exit(1);
178
+ }
179
+
180
+ const manifest = loadManifest(resolvedDir);
181
+
182
+ if (!manifest.id || !manifest.version) {
183
+ console.error('Error: extension.yaml must contain "id" and "version"');
184
+ process.exit(1);
185
+ }
186
+
187
+ console.log(`Packing ${manifest.name || manifest.id} v${manifest.version}...`);
188
+
189
+ // Collect files and compute checksums
190
+ const files = collectFiles(resolvedDir);
191
+ const checksums = computeChecksums(resolvedDir, files);
192
+
193
+ console.log(` Found ${files.length} files`);
194
+
195
+ // Write checksums.json temporarily
196
+ const checksumsPath = path.join(resolvedDir, 'checksums.json');
197
+ const checksumsExisted = fs.existsSync(checksumsPath);
198
+ fs.writeFileSync(checksumsPath, JSON.stringify(checksums, null, 2) + '\n');
199
+
200
+ // Determine output filename
201
+ const filename = outputPath || `${manifest.id.replace('/', '-')}-${manifest.version}.notur`;
202
+ const outputFullPath = path.resolve(filename);
203
+
204
+ // Build exclude args for tar
205
+ const excludeArgs = EXCLUDE_PATTERNS.map(p => `--exclude='${p}'`).join(' ');
206
+
207
+ try {
208
+ // Create tar.gz archive
209
+ execSync(
210
+ `tar ${excludeArgs} -czvf "${outputFullPath}" .`,
211
+ { cwd: resolvedDir, stdio: 'pipe' }
212
+ );
213
+
214
+ // Compute archive checksum
215
+ const archiveChecksum = computeChecksum(outputFullPath);
216
+ fs.writeFileSync(
217
+ outputFullPath + '.sha256',
218
+ `${archiveChecksum} ${path.basename(outputFullPath)}\n`
219
+ );
220
+
221
+ console.log(`\nCreated: ${outputFullPath}`);
222
+ console.log(`Checksum: ${archiveChecksum}`);
223
+
224
+ // Sign the archive if requested
225
+ if (options.sign) {
226
+ const secretKey = getSecretKey(options);
227
+ const signature = await signArchive(outputFullPath, secretKey);
228
+ const sigPath = outputFullPath + '.sig';
229
+ fs.writeFileSync(sigPath, signature + '\n');
230
+ console.log(`Signature: ${sigPath}`);
231
+ }
232
+
233
+ console.log(`\nUpload this file to your Pterodactyl admin panel at /admin/notur/extensions`);
234
+
235
+ } finally {
236
+ // Clean up checksums.json if we created it
237
+ if (!checksumsExisted && fs.existsSync(checksumsPath)) {
238
+ fs.unlinkSync(checksumsPath);
239
+ }
240
+ }
241
+ }
242
+
243
+ // Main
244
+ const options = parseArgs();
245
+ pack(options.path, options.output, options).catch(err => {
246
+ console.error('Error:', err.message);
247
+ process.exit(1);
248
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"createExtension.d.ts","sourceRoot":"","sources":["../src/createExtension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAe,MAAM,SAAS,CAAC;AAE3D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,IAAI,CA+BrE"}
1
+ {"version":3,"file":"createExtension.d.ts","sourceRoot":"","sources":["../src/createExtension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAe,MAAM,SAAS,CAAC;AAE3D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAiCrE"}
@@ -20,12 +20,13 @@ import { getNoturApi } from './types';
20
20
  export function createExtension(definition) {
21
21
  const { config, slots = [], routes = [], onInit, onDestroy, cssIsolation } = definition;
22
22
  const api = getNoturApi();
23
+ const resolvedConfig = resolveConfig(api, config);
23
24
  const resolvedCssIsolation = resolveCssIsolation(api, config.id, cssIsolation);
24
25
  // Register the extension
25
26
  api.registry.registerExtension({
26
- id: config.id,
27
- name: config.name,
28
- version: config.version,
27
+ id: resolvedConfig.id,
28
+ name: resolvedConfig.name,
29
+ version: resolvedConfig.version,
29
30
  slots: slots.map(s => ({ ...s, extensionId: config.id })),
30
31
  routes: routes.map(r => ({ ...r, extensionId: config.id })),
31
32
  cssIsolation: resolvedCssIsolation,
@@ -43,7 +44,21 @@ export function createExtension(definition) {
43
44
  console.error(`[Notur] Extension ${config.id} init error:`, e);
44
45
  }
45
46
  }
46
- console.log(`[Notur] Extension registered: ${config.id} v${config.version}`);
47
+ console.log(`[Notur] Extension registered: ${resolvedConfig.id} v${resolvedConfig.version}`);
48
+ }
49
+ function resolveConfig(api, config) {
50
+ var _a, _b, _c;
51
+ const manifestEntry = (_a = api.extensions) === null || _a === void 0 ? void 0 : _a.find(ext => ext.id === config.id);
52
+ const name = (_b = config.name) !== null && _b !== void 0 ? _b : manifestEntry === null || manifestEntry === void 0 ? void 0 : manifestEntry.name;
53
+ const version = (_c = config.version) !== null && _c !== void 0 ? _c : manifestEntry === null || manifestEntry === void 0 ? void 0 : manifestEntry.version;
54
+ if (!name || !version) {
55
+ throw new Error(`[Notur] Extension ${config.id} is missing name/version. Provide them in createExtension() or in extension.yaml.`);
56
+ }
57
+ return {
58
+ id: config.id,
59
+ name,
60
+ version,
61
+ };
47
62
  }
48
63
  function resolveCssIsolation(api, extensionId, local) {
49
64
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"createExtension.js","sourceRoot":"","sources":["../src/createExtension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe,CAAC,UAA+B;IAC3D,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;IACxF,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAE1B,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAE/E,yBAAyB;IACzB,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC3B,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,YAAY,EAAE,oBAAoB;KACrC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,IAAI,SAAS,EAAE,CAAC;QACZ,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;IAED,oBAAoB;IACpB,IAAI,MAAM,EAAE,CAAC;QACT,IAAI,CAAC;YACD,MAAM,EAAE,CAAC;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,qBAAqB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,mBAAmB,CACxB,GAAmC,EACnC,WAAmB,EACnB,KAA2C;;IAE3C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,EAAE,IAAI,EAAE,YAAqB,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,cAAc,GAAG,MAAA,MAAA,GAAG,CAAC,UAAU,0CAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC,0CAAE,YAAY,CAAC;IACzF,IAAI,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QACvD,IAAI,OAAO,IAAK,cAAsB,IAAI,CAAE,cAAsB,CAAC,SAAS,EAAE,CAAC;YAC3E,OAAO,EAAE,GAAG,cAAc,EAAE,SAAS,EAAG,cAAsB,CAAC,KAAK,EAAE,CAAC;QAC3E,CAAC;QACD,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"createExtension.js","sourceRoot":"","sources":["../src/createExtension.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export interface ExtensionConfig {
2
2
  id: string;
3
- name: string;
4
- version: string;
3
+ name?: string;
4
+ version?: string;
5
5
  }
6
6
  export interface CssIsolationConfig {
7
7
  mode: 'root-class';
@@ -134,6 +134,8 @@ export interface NoturApi {
134
134
  unregisterExtension: (id: string) => void;
135
135
  extensions?: Array<{
136
136
  id: string;
137
+ name?: string;
138
+ version?: string;
137
139
  bundle?: string;
138
140
  styles?: string;
139
141
  cssIsolation?: CssIsolationConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACtE,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,mBAAmB,GACzB,OAAO,GACP,cAAc,GACd,CAAC,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC;AAEhD,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACN,YAAY,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,GAAG;YAAE,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;QACvG,aAAa,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,MAAM,CAAC,GAAG;YAAE,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;QAC5I,iBAAiB,EAAE,CAAC,GAAG,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC;YAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC;YAAC,KAAK,CAAC,EAAE;gBAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,YAAY,CAAC,EAAE,kBAAkB,CAAA;SAAE,KAAK,IAAI,CAAC;QAC7O,uBAAuB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;QAC7E,mBAAmB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;QACnD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;QAChD,SAAS,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAAK,iBAAiB,EAAE,CAAC;QACpE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;QACxD,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;QACnD,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;KAC9E,CAAC;IACF,KAAK,EAAE;QACH,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;QAChD,eAAe,EAAE,CAAC,OAAO,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK;YACrE,IAAI,EAAE,OAAO,CAAC;YACd,OAAO,EAAE,OAAO,CAAC;YACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;YACrB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;YACzD,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;YACxD,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;SACtE,CAAC;QACF,iBAAiB,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7C,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,CAAC,KACd,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;QACpD,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/C,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;CAC3G;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAMtC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@notur/sdk",
3
- "version": "1.0.0",
3
+ "version": "1.1.3",
4
4
  "description": "Notur Extension Developer SDK",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -14,6 +14,10 @@
14
14
  "publishConfig": {
15
15
  "access": "public"
16
16
  },
17
+ "bin": {
18
+ "notur-pack": "./bin/notur-pack.js",
19
+ "notur-keygen": "./bin/notur-keygen.js"
20
+ },
17
21
  "keywords": [
18
22
  "notur",
19
23
  "pterodactyl",
@@ -23,6 +27,7 @@
23
27
  ],
24
28
  "files": [
25
29
  "dist/",
30
+ "bin/",
26
31
  "webpack.extension.config.js",
27
32
  "templates/"
28
33
  ],
@@ -35,6 +40,10 @@
35
40
  "react": "^16.14.0",
36
41
  "react-dom": "^16.14.0"
37
42
  },
43
+ "dependencies": {
44
+ "libsodium-wrappers": "^0.7.13",
45
+ "yaml": "^2.3.0"
46
+ },
38
47
  "devDependencies": {
39
48
  "typescript": "^5.3.0",
40
49
  "@types/react": "^16.14.0",
@@ -11,33 +11,3 @@ requires:
11
11
  notur: "^1.0"
12
12
  pterodactyl: "^1.11"
13
13
  php: "^8.2"
14
-
15
- capabilities:
16
- routes: "^1"
17
- health: "^1"
18
- schedules: "^1"
19
- css_isolation: "^1"
20
-
21
- entrypoint: "{{namespace}}\\{{className}}"
22
-
23
- autoload:
24
- psr-4:
25
- "{{namespace}}\\": "src/"
26
-
27
- backend:
28
- routes:
29
- api-client: "src/routes/api-client.php"
30
- migrations: "database/migrations"
31
- permissions: []
32
-
33
- frontend:
34
- bundle: "resources/frontend/dist/extension.js"
35
- css_isolation:
36
- mode: "root-class"
37
- slots: {}
38
-
39
- health:
40
- checks: []
41
-
42
- schedules:
43
- tasks: []