@bobfrankston/msgapidefs 0.1.0 → 0.1.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.
@@ -0,0 +1,9 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(tsc:*)"
5
+ ],
6
+ "deny": [],
7
+ "ask": []
8
+ }
9
+ }
package/.gitattributes ADDED
@@ -0,0 +1,17 @@
1
+ # Force LF line endings for all text files
2
+ * text=auto eol=lf
3
+
4
+ # Explicit text files
5
+ *.ts text eol=lf
6
+ *.js text eol=lf
7
+ *.json text eol=lf
8
+ *.md text eol=lf
9
+ *.html text eol=lf
10
+ *.css text eol=lf
11
+ *.sh text eol=lf
12
+
13
+ # Binary files
14
+ *.png binary
15
+ *.jpg binary
16
+ *.ico binary
17
+ *.pdf binary
@@ -0,0 +1,22 @@
1
+ {
2
+ "workbench.colorCustomizations": {
3
+ "activityBar.activeBackground": "#c3b9ff",
4
+ "activityBar.background": "#c3b9ff",
5
+ "activityBar.foreground": "#15202b",
6
+ "activityBar.inactiveForeground": "#15202b99",
7
+ "activityBarBadge.background": "#ff2400",
8
+ "activityBarBadge.foreground": "#e7e7e7",
9
+ "commandCenter.border": "#15202b99",
10
+ "sash.hoverBorder": "#c3b9ff",
11
+ "statusBar.background": "#9786ff",
12
+ "statusBar.foreground": "#15202b",
13
+ "statusBarItem.hoverBackground": "#6b53ff",
14
+ "statusBarItem.remoteBackground": "#9786ff",
15
+ "statusBarItem.remoteForeground": "#15202b",
16
+ "titleBar.activeBackground": "#9786ff",
17
+ "titleBar.activeForeground": "#15202b",
18
+ "titleBar.inactiveBackground": "#9786ff99",
19
+ "titleBar.inactiveForeground": "#15202b99"
20
+ },
21
+ "peacock.color": "#9786ff"
22
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "version": "2.0.0",
3
+ "tasks": [
4
+ {
5
+ "label": "tsc: watch",
6
+ "type": "shell",
7
+ "command": "tsc",
8
+ "args": ["--watch"],
9
+ "runOptions": {
10
+ "runOn": "folderOpen"
11
+ },
12
+ "problemMatcher": "$tsc-watch",
13
+ "isBackground": true,
14
+ "group": {
15
+ "kind": "build",
16
+ "isDefault": true
17
+ }
18
+ }
19
+ ]
20
+ }
package/msgapidefs.d.ts CHANGED
@@ -6,15 +6,14 @@
6
6
  *
7
7
  * Usage:
8
8
  * ```typescript
9
- * import type { MsgAPI } from '@bobfrankston/msgapidefs';
9
+ * // Import to register global window.msgapi type (browser direct import)
10
+ * import '../node_modules/@bobfrankston/msgapidefs/msgapidefs.js';
11
+ * // Note: '../node_modules/@bobfrankston/msgapidefs/index.js' may also work via package.json exports
10
12
  *
11
- * declare global {
12
- * interface Window {
13
- * msgapi?: MsgAPI;
14
- * }
15
- * }
13
+ * // Or import types explicitly
14
+ * import type { MsgAPI, MsgResult } from '../node_modules/@bobfrankston/msgapidefs/msgapidefs.js';
16
15
  *
17
- * // Check if running in msgview/msger
16
+ * // window.msgapi is now typed automatically
18
17
  * if (window.msgapi) {
19
18
  * window.msgapi.setTitle('My App');
20
19
  * }
@@ -287,25 +286,6 @@ export interface MsgAPI {
287
286
  delete(path: string): Promise<void>;
288
287
  };
289
288
  }
290
- /**
291
- * Helper to check if code is running in msgview/msger
292
- * @returns true if running in msgapi environment
293
- * @example
294
- * if (isMsgAPI()) {
295
- * msgapi.setTitle('Running in msgview/msger!');
296
- * } else {
297
- * console.log('Running in browser');
298
- * }
299
- */
300
- export declare function isMsgAPI(): boolean;
301
- /**
302
- * Get msgapi API with fallback for browser compatibility
303
- * @returns msgapi API if available, or stub implementation for browser
304
- * @example
305
- * const api = getMsgAPI();
306
- * api.saveData('key', 'value'); // Works in both msgview/msger and browser
307
- */
308
- export declare function getMsgAPI(): MsgAPI;
309
289
  /**
310
290
  * Declare global window.msgapi
311
291
  */
@@ -314,9 +294,3 @@ declare global {
314
294
  msgapi?: MsgAPI;
315
295
  }
316
296
  }
317
- declare const _default: {
318
- isMsgAPI: typeof isMsgAPI;
319
- getMsgAPI: typeof getMsgAPI;
320
- };
321
- export default _default;
322
- //# sourceMappingURL=msgapidefs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msgapidefs.d.ts","sourceRoot":"","sources":["msgapidefs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAC,CAAC,CAAC;IACtD,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,MAAM;IAKnB;;;;OAIG;IACH,gBAAgB,IAAI,IAAI,CAAC;IAEzB;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEtC;;;;OAIG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;;;OAIG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7C;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAEvC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAEzC;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAM7C;;;;;;;;OAQG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC;IAE3C;;;;;;;OAOG;IACH,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAEpD;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC;;;;;;OAMG;IACH,SAAS,IAAI,OAAO,CAAC;IAMrB;;OAEG;IACH,EAAE,CAAC,EAAE;QACD;;;;;;;;;;;;WAYG;QACH,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAEtE;;;;;;;;WAQG;QACH,WAAW,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAElE;;;;;;;;WAQG;QACH,UAAU,CACN,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE,iBAAiB,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAE1B;;;;;;;;WAQG;QACH,YAAY,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAElE;;;;;;;WAOG;QACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAEpC;;;;;;;WAOG;QACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAEpD;;;;;;;WAOG;QACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAExC;;;;;;;WAOG;QACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvC;;;;;;WAMG;QACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACvC,CAAC;CACL;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,IAAI,MAAM,CA6DlC;AAED;;GAEG;AACH,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB;CACJ;;;;;AAED,wBAGE"}
package/msgapidefs.js CHANGED
@@ -6,105 +6,17 @@
6
6
  *
7
7
  * Usage:
8
8
  * ```typescript
9
- * import type { MsgAPI } from '@bobfrankston/msgapidefs';
9
+ * // Import to register global window.msgapi type (browser direct import)
10
+ * import '../node_modules/@bobfrankston/msgapidefs/msgapidefs.js';
11
+ * // Note: '../node_modules/@bobfrankston/msgapidefs/index.js' may also work via package.json exports
10
12
  *
11
- * declare global {
12
- * interface Window {
13
- * msgapi?: MsgAPI;
14
- * }
15
- * }
13
+ * // Or import types explicitly
14
+ * import type { MsgAPI, MsgResult } from '../node_modules/@bobfrankston/msgapidefs/msgapidefs.js';
16
15
  *
17
- * // Check if running in msgview/msger
16
+ * // window.msgapi is now typed automatically
18
17
  * if (window.msgapi) {
19
18
  * window.msgapi.setTitle('My App');
20
19
  * }
21
20
  * ```
22
21
  */
23
- /**
24
- * Helper to check if code is running in msgview/msger
25
- * @returns true if running in msgapi environment
26
- * @example
27
- * if (isMsgAPI()) {
28
- * msgapi.setTitle('Running in msgview/msger!');
29
- * } else {
30
- * console.log('Running in browser');
31
- * }
32
- */
33
- export function isMsgAPI() {
34
- return typeof window !== 'undefined' && typeof window.msgapi !== 'undefined';
35
- }
36
- /**
37
- * Get msgapi API with fallback for browser compatibility
38
- * @returns msgapi API if available, or stub implementation for browser
39
- * @example
40
- * const api = getMsgAPI();
41
- * api.saveData('key', 'value'); // Works in both msgview/msger and browser
42
- */
43
- export function getMsgAPI() {
44
- if (isMsgAPI()) {
45
- return window.msgapi;
46
- }
47
- // Return browser-compatible stub
48
- return {
49
- // Window control - no-op in browser
50
- toggleFullscreen: () => { },
51
- setFullscreen: () => { },
52
- minimize: () => { },
53
- maximize: () => { },
54
- setSize: () => { },
55
- setPosition: () => { },
56
- setAlwaysOnTop: () => { },
57
- setTitle: (title) => { document.title = title; },
58
- close: () => { window.close(); },
59
- sendResult: () => { window.close(); },
60
- // Data persistence - use localStorage in browser
61
- saveData: (key, value) => {
62
- try {
63
- localStorage.setItem('msgapi_' + key, JSON.stringify(value));
64
- return true;
65
- }
66
- catch {
67
- return false;
68
- }
69
- },
70
- loadData: (key, defaultValue) => {
71
- try {
72
- const item = localStorage.getItem('msgapi_' + key);
73
- return item ? JSON.parse(item) : defaultValue;
74
- }
75
- catch {
76
- return defaultValue;
77
- }
78
- },
79
- removeData: (key) => {
80
- try {
81
- localStorage.removeItem('msgapi_' + key);
82
- return true;
83
- }
84
- catch {
85
- return false;
86
- }
87
- },
88
- clearData: () => {
89
- try {
90
- const keys = Object.keys(localStorage);
91
- for (const key of keys) {
92
- if (key.startsWith('msgapi_')) {
93
- localStorage.removeItem(key);
94
- }
95
- }
96
- return true;
97
- }
98
- catch {
99
- return false;
100
- }
101
- },
102
- // File system - not available in browser
103
- fs: undefined
104
- };
105
- }
106
- export default {
107
- isMsgAPI,
108
- getMsgAPI
109
- };
110
- //# sourceMappingURL=msgapidefs.js.map
22
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msgapidefs.js","sourceRoot":"","sources":["msgapidefs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAqTH;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ;IACpB,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC;AACjF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS;IACrB,IAAI,QAAQ,EAAE,EAAE,CAAC;QACb,OAAO,MAAM,CAAC,MAAO,CAAC;IAC1B,CAAC;IAED,iCAAiC;IACjC,OAAO;QACH,oCAAoC;QACpC,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;QAC1B,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;QACvB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;QAClB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;QAClB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;QACjB,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;QACrB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;QACxB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;QACxD,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChC,UAAU,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAErC,iDAAiD;QACjD,QAAQ,EAAE,CAAC,GAAW,EAAE,KAAU,EAAW,EAAE;YAC3C,IAAI,CAAC;gBACD,YAAY,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7D,OAAO,IAAI,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,QAAQ,EAAE,CAAU,GAAW,EAAE,YAAgB,EAAK,EAAE;YACpD,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;gBACnD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,YAAkB,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,YAAiB,CAAC;YAC7B,CAAC;QACL,CAAC;QACD,UAAU,EAAE,CAAC,GAAW,EAAW,EAAE;YACjC,IAAI,CAAC;gBACD,YAAY,CAAC,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,SAAS,EAAE,GAAY,EAAE;YACrB,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACrB,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC5B,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBACjC,CAAC;gBACL,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACL,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,yCAAyC;QACzC,EAAE,EAAE,SAAS;KAChB,CAAC;AACN,CAAC;AAWD,eAAe;IACX,QAAQ;IACR,SAAS;CACZ,CAAC"}
package/msgapidefs.ts CHANGED
@@ -6,15 +6,14 @@
6
6
  *
7
7
  * Usage:
8
8
  * ```typescript
9
- * import type { MsgAPI } from '@bobfrankston/msgapidefs';
9
+ * // Import to register global window.msgapi type (browser direct import)
10
+ * import '../node_modules/@bobfrankston/msgapidefs/msgapidefs.js';
11
+ * // Note: '../node_modules/@bobfrankston/msgapidefs/index.js' may also work via package.json exports
10
12
  *
11
- * declare global {
12
- * interface Window {
13
- * msgapi?: MsgAPI;
14
- * }
15
- * }
13
+ * // Or import types explicitly
14
+ * import type { MsgAPI, MsgResult } from '../node_modules/@bobfrankston/msgapidefs/msgapidefs.js';
16
15
  *
17
- * // Check if running in msgview/msger
16
+ * // window.msgapi is now typed automatically
18
17
  * if (window.msgapi) {
19
18
  * window.msgapi.setTitle('My App');
20
19
  * }
@@ -328,90 +327,6 @@ export interface MsgAPI {
328
327
  };
329
328
  }
330
329
 
331
- /**
332
- * Helper to check if code is running in msgview/msger
333
- * @returns true if running in msgapi environment
334
- * @example
335
- * if (isMsgAPI()) {
336
- * msgapi.setTitle('Running in msgview/msger!');
337
- * } else {
338
- * console.log('Running in browser');
339
- * }
340
- */
341
- export function isMsgAPI(): boolean {
342
- return typeof window !== 'undefined' && typeof window.msgapi !== 'undefined';
343
- }
344
-
345
- /**
346
- * Get msgapi API with fallback for browser compatibility
347
- * @returns msgapi API if available, or stub implementation for browser
348
- * @example
349
- * const api = getMsgAPI();
350
- * api.saveData('key', 'value'); // Works in both msgview/msger and browser
351
- */
352
- export function getMsgAPI(): MsgAPI {
353
- if (isMsgAPI()) {
354
- return window.msgapi!;
355
- }
356
-
357
- // Return browser-compatible stub
358
- return {
359
- // Window control - no-op in browser
360
- toggleFullscreen: () => {},
361
- setFullscreen: () => {},
362
- minimize: () => {},
363
- maximize: () => {},
364
- setSize: () => {},
365
- setPosition: () => {},
366
- setAlwaysOnTop: () => {},
367
- setTitle: (title: string) => { document.title = title; },
368
- close: () => { window.close(); },
369
- sendResult: () => { window.close(); },
370
-
371
- // Data persistence - use localStorage in browser
372
- saveData: (key: string, value: any): boolean => {
373
- try {
374
- localStorage.setItem('msgapi_' + key, JSON.stringify(value));
375
- return true;
376
- } catch {
377
- return false;
378
- }
379
- },
380
- loadData: <T = any>(key: string, defaultValue?: T): T => {
381
- try {
382
- const item = localStorage.getItem('msgapi_' + key);
383
- return item ? JSON.parse(item) : (defaultValue as T);
384
- } catch {
385
- return defaultValue as T;
386
- }
387
- },
388
- removeData: (key: string): boolean => {
389
- try {
390
- localStorage.removeItem('msgapi_' + key);
391
- return true;
392
- } catch {
393
- return false;
394
- }
395
- },
396
- clearData: (): boolean => {
397
- try {
398
- const keys = Object.keys(localStorage);
399
- for (const key of keys) {
400
- if (key.startsWith('msgapi_')) {
401
- localStorage.removeItem(key);
402
- }
403
- }
404
- return true;
405
- } catch {
406
- return false;
407
- }
408
- },
409
-
410
- // File system - not available in browser
411
- fs: undefined
412
- };
413
- }
414
-
415
330
  /**
416
331
  * Declare global window.msgapi
417
332
  */
@@ -420,8 +335,3 @@ declare global {
420
335
  msgapi?: MsgAPI;
421
336
  }
422
337
  }
423
-
424
- export default {
425
- isMsgAPI,
426
- getMsgAPI
427
- };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/msgapidefs",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "TypeScript definitions for msgapi JavaScript API (msgview/msger)",
5
5
  "type": "module",
6
6
  "main": "./msgapidefs.js",
@@ -11,13 +11,6 @@
11
11
  "types": "./msgapidefs.d.ts"
12
12
  }
13
13
  },
14
- "files": [
15
- "msgapidefs.js",
16
- "msgapidefs.d.ts",
17
- "msgapidefs.ts",
18
- "README.md",
19
- "samples.html"
20
- ],
21
14
  "keywords": [
22
15
  "msgapi",
23
16
  "msgview",
@@ -35,5 +28,8 @@
35
28
  },
36
29
  "publishConfig": {
37
30
  "access": "public"
31
+ },
32
+ "scripts": {
33
+ "release": "git add -A && git commit -m \"Pre-release commit\" && npm version patch && git push && git push --tags && npm publish --quiet"
38
34
  }
39
35
  }
package/samples.html CHANGED
@@ -2,7 +2,7 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
- <title>msger Storage API Demo</title>
5
+ <title>msgapi Storage API Demo</title>
6
6
  <style>
7
7
  body {
8
8
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
@@ -75,7 +75,7 @@
75
75
  </style>
76
76
  </head>
77
77
  <body>
78
- <h1>msger Storage API Demo</h1>
78
+ <h1>msgapi Storage API Demo</h1>
79
79
 
80
80
  <div class="info">
81
81
  <strong>✅ What Works:</strong> localStorage-based persistence API, F11 fullscreen toggle<br>
@@ -93,8 +93,8 @@
93
93
  <!-- Data Storage -->
94
94
  <div class="section">
95
95
  <h2>Data Storage (Native localStorage)</h2>
96
- <p><strong>Recommendation:</strong> Use native <code>localStorage</code> for compatibility. Works in any browser context, not just msger.</p>
97
- <p>The msger storage API is just a thin convenience wrapper around localStorage - native API is preferred.</p>
96
+ <p><strong>Recommendation:</strong> Use native <code>localStorage</code> for compatibility. Works in any browser context, not just msgview/msger.</p>
97
+ <p>The msgapi storage API is just a thin convenience wrapper around localStorage - native API is preferred.</p>
98
98
  <input type="text" id="key" value="myData" placeholder="Storage key">
99
99
  <textarea id="value" rows="3" placeholder="Enter text, JSON, numbers...">Hello from msger!</textarea>
100
100
  <div>
@@ -110,7 +110,7 @@
110
110
  <div class="section">
111
111
  <h2>Manage Storage</h2>
112
112
  <button onclick="listAll()">List All Saved Data</button>
113
- <button onclick="clearAll()" class="secondary">Clear All msger Data</button>
113
+ <button onclick="clearAll()" class="secondary">Clear All msgapi Data</button>
114
114
  <div id="output3" class="output">Click to list or clear data</div>
115
115
  </div>
116
116
 
package/tsconfig.json ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "ES2020",
5
+ "lib": ["ES2020", "DOM"],
6
+ "declaration": true,
7
+ "outDir": ".",
8
+ "rootDir": ".",
9
+ "strict": true,
10
+ "esModuleInterop": true,
11
+ "skipLibCheck": true,
12
+ "forceConsistentCasingInFileNames": true,
13
+ "moduleResolution": "node",
14
+ "newLine": "lf"
15
+ },
16
+ "include": ["msgapidefs.ts"],
17
+ "exclude": ["node_modules"]
18
+ }